summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authordoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2015-06-10 13:37:49 +0000
committerdoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2015-06-10 13:37:49 +0000
commit3ecf19c737df470116d6a6a23143d4d3c3ad27dc (patch)
treea705fa5a48ae99b70c8502258eb79b95aef5c414 /debian
parent06c46edf35b69d3c9647f8f1a4a8cd4d671b5bc4 (diff)
downloadgcc-5-3ecf19c737df470116d6a6a23143d4d3c3ad27dc.tar.gz
* Update to SVN 20150610 (r224282, 5.1.1) from the gcc-5-branch.
git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-5@8111 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog3
-rw-r--r--debian/patches/svn-updates.diff4298
2 files changed, 4110 insertions, 191 deletions
diff --git a/debian/changelog b/debian/changelog
index a4c4251..1d4955a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,12 +1,13 @@
gcc-5 (5.1.1-10) UNRELEASED; urgency=medium
+ * Update to SVN 20150610 (r224282, 5.1.1) from the gcc-5-branch.
* Make removal of byte-compiled libstdc++ pretty printer files more
robust. Closes: #787630.
* Fix mips 32bit (o32) multilib builds (YunQiang Su).
* Build target libraries with -Wl,-z,relro.
* Build libstdc++6 when building the common libraries.
- -- Matthias Klose <doko@debian.org> Tue, 09 Jun 2015 15:39:34 +0200
+ -- Matthias Klose <doko@debian.org> Wed, 10 Jun 2015 15:37:26 +0200
gcc-5 (5.1.1-9) unstable; urgency=medium
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index a4f97ad..74de5ca 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 5 branch upto 20150602 (r224029).
+# DP: updates from the 5 branch upto 20150609 (r224282).
last_update()
{
cat > ${dir}LAST_UPDATED <EOF
-Tue Jun 2 14:34:49 CEST 2015
-Tue Jun 2 12:34:49 UTC 2015 (revision 224029)
+Tue Jun 9 16:18:07 CEST 2015
+Tue Jun 9 14:18:07 UTC 2015 (revision 224282)
EOF
}
@@ -5053,6 +5053,19 @@ Index: libstdc++-v3/python/libstdcxx/v6/printers.py
return get_value_from_Rb_tree_node(node)
class StdDebugIteratorPrinter:
+Index: libstdc++-v3/src/c++11/codecvt.cc
+===================================================================
+--- a/src/libstdc++-v3/src/c++11/codecvt.cc (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/src/c++11/codecvt.cc (.../branches/gcc-5-branch)
+@@ -319,7 +319,7 @@
+ {
+ if (to.size() > 0)
+ {
+- *to.next = codepoint;
++ *to.next = adjust_byte_order(codepoint, mode);
+ ++to.next;
+ return true;
+ }
Index: libstdc++-v3/configure.host
===================================================================
--- a/src/libstdc++-v3/configure.host (.../tags/gcc_5_1_0_release)
@@ -5065,6 +5078,1004 @@ Index: libstdc++-v3/configure.host
;;
aix4.[3456789]*)
# We set os_include_dir to os/aix only on AIX 4.3 and newer, but
+Index: libstdc++-v3/doc/xml/manual/abi.xml
+===================================================================
+--- a/src/libstdc++-v3/doc/xml/manual/abi.xml (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/xml/manual/abi.xml (.../branches/gcc-5-branch)
+@@ -264,6 +264,7 @@
+ <listitem><para>GCC 4.8.0: libstdc++.so.6.0.18</para></listitem>
+ <listitem><para>GCC 4.8.3: libstdc++.so.6.0.19</para></listitem>
+ <listitem><para>GCC 4.9.0: libstdc++.so.6.0.20</para></listitem>
++ <listitem><para>GCC 5.1.0: libstdc++.so.6.0.21</para></listitem>
+ </itemizedlist>
+ <para>
+ Note 1: Error should be libstdc++.so.3.0.3.
+@@ -329,6 +330,7 @@
+ <listitem><para>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</para></listitem>
+ <listitem><para>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</para></listitem>
+ <listitem><para>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</para></listitem>
++ <listitem><para>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</para></listitem>
+ </itemizedlist>
+ </listitem>
+
+@@ -539,6 +541,7 @@
+ <listitem><para>GCC 3.3.3: include/c++/3.3.3</para></listitem>
+ <listitem><para>GCC 3.4.x: include/c++/3.4.x</para></listitem>
+ <listitem><para>GCC 4.x.y: include/c++/4.x.y</para></listitem>
++ <listitem><para>GCC 5.x.0: include/c++/5.x.0</para></listitem>
+ </itemizedlist>
+ <para/>
+ </listitem>
+Index: libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
+===================================================================
+--- a/src/libstdc++-v3/doc/xml/manual/concurrency_extensions.xml (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/xml/manual/concurrency_extensions.xml (.../branches/gcc-5-branch)
+@@ -187,7 +187,7 @@
+ <section xml:id="manual.ext.concurrency.impl" xreflabel="Implementation"><info><title>Implementation</title></info>
+ <?dbhtml filename="ext_concurrency_impl.html"?>
+
+- <section xml:id="manual.ext.concurrency.impl.atomic_fallbacks" xreflabel="Atomic F"><info><title>Using Builtin Atomic Functions</title></info>
++ <section xml:id="manual.ext.concurrency.impl.atomic_fallbacks" xreflabel="Atomic F"><info><title>Using Built-in Atomic Functions</title></info>
+
+
+ <para>The functions for atomic operations described above are either
+@@ -197,11 +197,23 @@
+ <para>Compiler intrinsics (builtins) are always preferred. However, as
+ the compiler builtins for atomics are not universally implemented,
+ using them directly is problematic, and can result in undefined
+-function calls. (An example of an undefined symbol from the use
++function calls.
++</para>
++
++<para>Prior to GCC 4.7 the older <code>__sync</code> intrinsics were used.
++An example of an undefined symbol from the use
+ of <code>__sync_fetch_and_add</code> on an unsupported host is a
+-missing reference to <code>__sync_fetch_and_add_4</code>.)
++missing reference to <code>__sync_fetch_and_add_4</code>.
+ </para>
+
++<para>Current releases use the newer <code>__atomic</code> intrinsics,
++which are implemented by library calls if the hardware doesn't support them.
++Undefined references to functions like
++<code>__atomic_is_lock_free</code> should be resolved by linking to
++<filename class="libraryfile">libatomic</filename>, which is usually
++installed alongside libstdc++.
++</para>
++
+ <para>In addition, on some hosts the compiler intrinsics are enabled
+ conditionally, via the <code>-march</code> command line flag. This makes
+ usage vary depending on the target hardware and the flags used during
+Index: libstdc++-v3/doc/xml/manual/configure.xml
+===================================================================
+--- a/src/libstdc++-v3/doc/xml/manual/configure.xml (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/xml/manual/configure.xml (.../branches/gcc-5-branch)
+@@ -385,18 +385,22 @@
+ <varlistentry><term><code>--disable-libstdcxx-dual-abi</code></term>
+ <listitem>
+ <para>
+- Disable support for the new, C++11-conforming <code>std::string</code>
+- implementation. This option changes the library ABI.
++ Disable support for the new, C++11-conforming implementations of
++ <code>std::string</code>, <code>std::list</code> etc. so that the
++ library only provides definitions of types using the old ABI
++ (see <xref linkend="manual.intro.using.abi"/>).
++ This option changes the library ABI.
+ </para>
+ </listitem></varlistentry>
+
+-<varlistentry><term><code>--with-default-libstdcxx-abi</code></term>
++<varlistentry><term><code>--with-default-libstdcxx-abi=</code><replaceable>OPTION</replaceable></term>
+ <listitem>
+ <para>
+- By default, the new <code>std::string</code> implementation will be
+- declared and a macro must be defined to declare the old implementation
+- instead. That default can be reversed by configuring the library with
+- <code>--with-default-libstdcxx-abi=c++98</code>.
++ Set the default value for the <symbol>_GLIBCXX_USE_CXX11_ABI</symbol>
++ macro (see <xref linkend="manual.intro.using.macros"/>).
++ The default is <option>OPTION=c++11</option> which sets the macro to
++ <literal>1</literal>,
++ use <option>OPTION=c++98</option> to set it to <literal>0</literal>.
+ This option does not change the library ABI.
+ </para>
+ </listitem></varlistentry>
+Index: libstdc++-v3/doc/xml/manual/evolution.xml
+===================================================================
+--- a/src/libstdc++-v3/doc/xml/manual/evolution.xml (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/xml/manual/evolution.xml (.../branches/gcc-5-branch)
+@@ -638,7 +638,7 @@
+ </para>
+
+ <para>
+- The library was updated to to avoid including
++ The library was updated to avoid including
+ <filename class="headerfile">stddef.h</filename> in order
+ to reduce namespace pollution.
+ </para>
+@@ -668,7 +668,7 @@
+ <para>A new clocale model for newlib is available.</para>
+
+ <para>
+- The library was updated to to avoid including
++ The library was updated to avoid including
+ <filename class="headerfile">unistd.h</filename> in order
+ to reduce namespace pollution.
+ </para>
+Index: libstdc++-v3/doc/xml/manual/using.xml
+===================================================================
+--- a/src/libstdc++-v3/doc/xml/manual/using.xml (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/xml/manual/using.xml (.../branches/gcc-5-branch)
+@@ -6,8 +6,7 @@
+ <section xml:id="manual.intro.using.flags" xreflabel="Flags"><info><title>Command Options</title></info>
+
+ <para>
+- The set of features available in the GNU C++ library is shaped
+- by
++ The set of features available in the GNU C++ library is shaped by
+ several <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Invoking-GCC.html">GCC
+ Command Options</link>. Options that impact libstdc++ are
+ enumerated and detailed in the table below.
+@@ -64,11 +63,23 @@
+
+ <row>
+ <entry><literal>-pthread</literal> or <literal>-pthreads</literal></entry>
+- <entry>For ISO C++11 &lt;thread&gt;, &lt;future&gt;,
+- &lt;mutex&gt;, or &lt;condition_variable&gt;.</entry>
++ <entry>For ISO C++11
++ <filename class="headerfile">&lt;thread&gt;</filename>,
++ <filename class="headerfile">&lt;future&gt;</filename>,
++ <filename class="headerfile">&lt;mutex&gt;</filename>,
++ or <filename class="headerfile">&lt;condition_variable&gt;</filename>.
++ </entry>
+ </row>
+
+ <row>
++ <entry><literal>-latomic</literal></entry>
++ <entry>Linking to <filename class="libraryfile">libatomic</filename>
++ is required for some uses of ISO C++11
++ <filename class="headerfile">&lt;atomic&gt;</filename>.
++ </entry>
++ </row>
++
++ <row>
+ <entry><literal>-fopenmp</literal></entry>
+ <entry>For <link linkend="manual.ext.parallel_mode">parallel</link> mode.</entry>
+ </row>
+@@ -779,8 +790,9 @@
+ file <filename class="headerfile">c++config.h</filename>, which
+ is generated during the libstdc++ configuration and build
+ process. This file is then included when needed by files part of
+- the public libstdc++ API, like &lt;ios&gt;. Most of these macros
+- should not be used by consumers of libstdc++, and are reserved
++ the public libstdc++ API, like
++ <filename class="headerfile">&lt;ios&gt;</filename>. Most of these
++ macros should not be used by consumers of libstdc++, and are reserved
+ for internal implementation use. <emphasis>These macros cannot
+ be redefined</emphasis>.
+ </para>
+@@ -800,10 +812,10 @@
+ <term><code>__GLIBCXX__</code></term>
+ <listitem>
+ <para>The current version of
+- libstdc++ in compressed ISO date format, form of an unsigned
++ libstdc++ in compressed ISO date format, as an unsigned
+ long. For details on the value of this particular macro for a
+- particular release, please consult this <link linkend="appendix.porting.abi">
+- document</link>.
++ particular release, please consult the <link linkend="appendix.porting.abi">
++ ABI Policy and Guidelines</link> appendix.
+ </para>
+ </listitem>
+ </varlistentry>
+@@ -816,14 +828,15 @@
+ <para><quote>Configurable</quote> (or <quote>Not configurable</quote>) means
+ that the symbol is initially chosen (or not) based on
+ --enable/--disable options at library build and configure time
+- (documented <link linkend="manual.intro.setup.configure">here</link>), with the
+- various --enable/--disable choices being translated to
++ (documented in
++ <link linkend="manual.intro.setup.configure">Configure</link>),
++ with the various --enable/--disable choices being translated to
+ #define/#undef).
+ </para>
+
+ <para> <acronym>ABI</acronym> means that changing from the default value may
+- mean changing the <acronym>ABI</acronym> of compiled code. In other words, these
+- choices control code which has already been compiled (i.e., in a
++ mean changing the <acronym>ABI</acronym> of compiled code. In other words,
++ these choices control code which has already been compiled (i.e., in a
+ binary such as libstdc++.a/.so). If you explicitly #define or
+ #undef these macros, the <emphasis>headers</emphasis> may see different code
+ paths, but the <emphasis>libraries</emphasis> which you link against will not.
+@@ -847,6 +860,22 @@
+ </para>
+ </listitem></varlistentry>
+
++ <varlistentry><term><code>_GLIBCXX_USE_CXX11_ABI</code></term>
++ <listitem>
++ <para>
++ Defined to the value <literal>1</literal> by default.
++ Configurable via <code>--disable-libstdcxx-dual-abi</code>
++ and/or <code>--with-default-libstdcxx-abi</code>.
++ ABI-changing.
++ When defined to a non-zero value the library headers will use the
++ new C++11-conforming ABI introduced in GCC 5, rather than the older
++ ABI introduced in GCC 3.4. This changes the definition of several
++ class templates, including <classname>std:string</classname>,
++ <classname>std::list</classname> and some locale facets.
++ For more details see <xref linkend="manual.intro.using.abi"/>.
++ </para>
++ </listitem></varlistentry>
++
+ <varlistentry><term><code>_GLIBCXX_CONCEPT_CHECKS</code></term>
+ <listitem>
+ <para>
+@@ -854,7 +883,8 @@
+ <code>--enable-concept-checks</code>. When defined, performs
+ compile-time checking on certain template instantiations to
+ detect violations of the requirements of the standard. This
+- is described in more detail <link linkend="manual.ext.compile_checks">here</link>.
++ is described in more detail in
++ <link linkend="manual.ext.compile_checks">Compile Time Checks</link>.
+ </para>
+ </listitem></varlistentry>
+
+@@ -862,7 +892,7 @@
+ <listitem>
+ <para>
+ Undefined by default. When defined, compiles user code using
+- the <link linkend="manual.ext.debug_mode">debug mode</link>.
++ the <link linkend="manual.ext.debug_mode">debug mode</link>.
+ </para>
+ </listitem></varlistentry>
+ <varlistentry><term><code>_GLIBCXX_DEBUG_PEDANTIC</code></term>
+@@ -869,16 +899,16 @@
+ <listitem>
+ <para>
+ Undefined by default. When defined while compiling with
+- the <link linkend="manual.ext.debug_mode">debug mode</link>, makes
+- the debug mode extremely picky by making the use of libstdc++
+- extensions and libstdc++-specific behavior into errors.
++ the <link linkend="manual.ext.debug_mode">debug mode</link>, makes
++ the debug mode extremely picky by making the use of libstdc++
++ extensions and libstdc++-specific behavior into errors.
+ </para>
+ </listitem></varlistentry>
+ <varlistentry><term><code>_GLIBCXX_PARALLEL</code></term>
+ <listitem>
+ <para>Undefined by default. When defined, compiles user code
+- using the <link linkend="manual.ext.parallel_mode">parallel
+- mode</link>.
++ using the <link linkend="manual.ext.parallel_mode">parallel
++ mode</link>.
+ </para>
+ </listitem></varlistentry>
+
+@@ -885,8 +915,8 @@
+ <varlistentry><term><code>_GLIBCXX_PROFILE</code></term>
+ <listitem>
+ <para>Undefined by default. When defined, compiles user code
+- using the <link linkend="manual.ext.profile_mode">profile
+- mode</link>.
++ using the <link linkend="manual.ext.profile_mode">profile
++ mode</link>.
+ </para>
+ </listitem></varlistentry>
+ </variablelist>
+@@ -893,6 +923,94 @@
+
+ </section>
+
++<section xml:id="manual.intro.using.abi" xreflabel="Dual ABI">
++ <info><title>Dual ABI</title></info>
++ <?dbhtml filename="using_dual_abi.html"?>
++
++<para> In the GCC 5.1 release libstdc++ introduced a new library ABI that
++ includes new implementations of <classname>std::string</classname> and
++ <classname>std::list</classname>. These changes were necessary to conform
++ to the 2011 C++ standard which forbids Copy-On-Write strings and requires
++ lists to keep track of their size.
++</para>
++
++<para> In order to maintain backwards compatibility for existing code linked
++ to libstdc++ the library's soname has not changed and the old
++ implementations are still supported in parallel with the new ones.
++ This is achieved by defining the new implementations in an inline namespace
++ so they have different names for linkage purposes, e.g. the new version of
++ <classname>std::list&lt;int&gt;</classname> is actually defined as
++ <classname>std::__cxx11::list&lt;int&gt;</classname>. Because the symbols
++ for the new implementations have different names the definitions for both
++ versions can be present in the same library.
++</para>
++
++<para> The <symbol>_GLIBCXX_USE_CXX11_ABI</symbol> macro (see
++<xref linkend="manual.intro.using.macros"/>) controls whether
++ the declarations in the library headers use the old or new ABI.
++ So the decision of which ABI to use can be made separately for each
++ source file being compiled.
++ Using the default configuration options for GCC the default value
++ of the macro is <literal>1</literal> which causes the new ABI to be active,
++ so to use the old ABI you must explicitly define the macro to
++ <literal>0</literal> before including any library headers.
++ (Be aware that some GNU/Linux distributions configure GCC 5 differently so
++ that the default value of the macro is <literal>0</literal> and users must
++ define it to <literal>1</literal> to enable the new ABI.)
++</para>
++
++<para> Although the changes were made for C++11 conformance, the choice of ABI
++ to use is independent of the <option>-std</option> option used to compile
++ your code, i.e. for a given GCC build the default value of the
++ <symbol>_GLIBCXX_USE_CXX11_ABI</symbol> macro is the same for all dialects.
++ This ensures that the <option>-std</option> does not change the ABI, so
++ that it is straightforward to link C++03 and C++11 code together.
++</para>
++
++<para> Because <classname>std::string</classname> is used extensively
++ throughout the library a number of other types are also defined twice,
++ including the stringstream classes and several facets used by
++ <classname>std::locale</classname>. The standard facets which are always
++ installed in a locale may be present twice, with both ABIs, to ensure that
++ code like
++ <code>std::use_facet&lt;std::time_get&lt;char&gt;&gt;(locale);</code>
++ will work correctly for both <classname>std::time_get</classname> and
++ <classname>std::__cxx11::time_get</classname> (even if a user-defined
++ facet that derives from one or other version of
++ <classname>time_get</classname> is installed in the locale).
++</para>
++
++<para> Although the standard exception types defined in
++ <filename class="headerfile">&lt;stdexcept&gt;</filename> use strings, they
++ are not defined twice, so that a <classname>std::out_of_range</classname>
++ exception thrown in one file can always be caught by a suitable handler in
++ another file, even if the two files are compiled with different ABIs.
++</para>
++
++<section xml:id="manual.intro.using.abi.trouble" xreflabel="Dual ABI Troubleshooting"><info><title>Troubleshooting</title></info>
++
++<para> If you get linker errors about undefined references to symbols
++ that involve types in the <code>std::__cxx11</code> namespace or the tag
++ <code>[abi:cxx11]</code> then it probably indicates that you are trying to
++ link together object files that were compiled with different values for the
++ <symbol>_GLIBCXX_USE_CXX11_ABI</symbol> macro. This commonly happens when
++ linking to a third-party library that was compiled with an older version
++ of GCC. If the third-party library cannot be rebuilt with the new ABI then
++ you will need to recompile your code with the old ABI.
++</para>
++
++<para> Not all uses of the new ABI will cause changes in symbol names, for
++ example a class with a <classname>std::string</classname> member variable
++ will have the same mangled name whether compiled with the old or new ABI.
++ In order to detect such problems the new types and functions are
++ annotated with the <property>abi_tag</property> attribute, allowing the
++ compiler to warn about potential ABI incompatibilities in code using them.
++ Those warnings can be enabled with the <option>-Wabi-tag</option> option.
++</para>
++
++</section>
++</section>
++
+ <section xml:id="manual.intro.using.namespaces" xreflabel="Namespaces"><info><title>Namespaces</title></info>
+ <?dbhtml filename="using_namespaces.html"?>
+
+@@ -927,6 +1045,11 @@
+ </para></listitem>
+ </itemizedlist>
+
++<para> The library uses a number of inline namespaces as implementation
++details that are not intended for users to refer to directly, these include
++<code>std::__detail</code>, <code>std::__cxx11</code> and <code>std::_V2</code>.
++</para>
++
+ <para> A complete list of implementation namespaces (including namespace contents) is available in the generated source <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html">documentation</link>.
+ </para>
+
+@@ -1248,15 +1371,18 @@
+ all required macros to a compilation (if any such flags are
+ required then you must provide the flag for all compilations not
+ just linking) and link-library additions and/or replacements at
+- link time. The documentation is weak. Here is a quick summary
+- to display how ad hoc this is: On Solaris, both -pthreads and
+- -threads (with subtly different meanings) are honored.
+- On GNU/Linux x86, -pthread is honored. On FreeBSD,
+- -pthread is honored. Some other ports use other switches.
+- AFAIK, none of this is properly documented anywhere other than
+- in ``gcc -dumpspecs'' (look at lib and cpp entries).
++ link time. The documentation is weak. On several targets (including
++ GNU/Linux, Solaris and various BSDs) -pthread is honored.
++ Some other ports use other switches.
++ This is not well documented anywhere other than
++ in "gcc -dumpspecs" (look at the 'lib' and 'cpp' entries).
+ </para>
+
++ <para>
++ Some uses of <classname>std::atomic</classname> also require linking
++ to <filename class="libraryfile">libatomic</filename>.
++ </para>
++
+ </section>
+
+ <section xml:id="manual.intro.using.concurrency.thread_safety" xreflabel="Thread Safety"><info><title>Thread Safety</title></info>
+@@ -1305,14 +1431,19 @@
+ Requisite command-line flags are used for atomic operations
+ and threading. Examples of this include <code>-pthread</code>
+ and <code>-march=native</code>, although specifics vary
+- depending on the host environment. See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html">Machine
++ depending on the host environment. See
++ <link linkend="manual.intro.using.flags">Command Options</link> and
++ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html">Machine
+ Dependent Options</link>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+- An implementation of atomicity.h functions
+- exists for the architecture in question. See the internals documentation for more <link linkend="internals.thread_safety">details</link>.
++ An implementation of the
++ <filename class="headerfile">atomicity.h</filename> functions
++ exists for the architecture in question. See the
++ <link linkend="internals.thread_safety">internals
++ documentation</link> for more details.
+ </para>
+ </listitem>
+
+Index: libstdc++-v3/doc/xml/manual/strings.xml
+===================================================================
+--- a/src/libstdc++-v3/doc/xml/manual/strings.xml (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/xml/manual/strings.xml (.../branches/gcc-5-branch)
+@@ -353,7 +353,7 @@
+ a <code>vector</code>'s memory usage
+ (see <link linkend="faq.size_equals_capacity">this FAQ
+ entry</link>) but the regular copy constructor cannot be used
+- because libstdc++'s <code>string</code> is Copy-On-Write.
++ because libstdc++'s <code>string</code> is Copy-On-Write in GCC 3.
+ </para>
+ <para>In <link linkend="status.iso.2011">C++11</link> mode you can call
+ <code>s.shrink_to_fit()</code> to achieve the same effect as
+Index: libstdc++-v3/doc/html/index.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/index.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/index.html (.../branches/gcc-5-branch)
+@@ -23,7 +23,7 @@
+ </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.
+ Introduction
+
+-</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.2014">C++ 2014</a></span></dt><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.
++</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.2014">C++ 2014</a></span></dt><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_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><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.
+ Standard Contents
+ </a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/support.html">4.
+ Support
+@@ -127,7 +127,7 @@
+ Text <code class="function">modify</code> Up
+ </a></span></dt><dt><span class="section"><a href="manual/policy_based_data_structures_test.html#performance.priority_queue.text_modify_down">
+ Text <code class="function">modify</code> Down
+- </a></span></dt></dl></dd><dt><span class="section"><a href="manual/policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="manual/policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="manual/policy_data_structures_ack.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="manual/policy_data_structures.html#pbds.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/ext_containers.html">23. HP/SGI Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="manual/ext_sgi.html">Deprecated</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/ext_utilities.html">24. Utilities</a></span></dt><dt><span class="chapter"><a href="manual/ext_algorithms.html">25. Algorithms</a></span></dt><dt><span class="chapter"><a href="manual/ext_numerics.html">26. Numerics</a></span></dt><dt><span class="chapter"><a href="manual/ext_iterators.html">27. Iterators</a></span></dt><dt><span class="chapter"><a href="manual/ext_io.html">28. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/ext_demangling.html">29. Demangling</a></span></dt><dt><span class="chapter"><a href="manual/ext_concurrency.html">30. Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="manual/ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="manual/ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="manual/ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="manual/ext_concurrency_use.html">Use</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="manual/appendix.html">IV.
++ </a></span></dt></dl></dd><dt><span class="section"><a href="manual/policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="manual/policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="manual/policy_data_structures_ack.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="manual/policy_data_structures.html#pbds.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/ext_containers.html">23. HP/SGI Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="manual/ext_sgi.html">Deprecated</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/ext_utilities.html">24. Utilities</a></span></dt><dt><span class="chapter"><a href="manual/ext_algorithms.html">25. Algorithms</a></span></dt><dt><span class="chapter"><a href="manual/ext_numerics.html">26. Numerics</a></span></dt><dt><span class="chapter"><a href="manual/ext_iterators.html">27. Iterators</a></span></dt><dt><span class="chapter"><a href="manual/ext_io.html">28. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/ext_demangling.html">29. Demangling</a></span></dt><dt><span class="chapter"><a href="manual/ext_concurrency.html">30. Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="manual/ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="manual/ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Built-in Atomic Functions</a></span></dt><dt><span class="section"><a href="manual/ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="manual/ext_concurrency_use.html">Use</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="manual/appendix.html">IV.
+ Appendices
+ </a></span></dt><dd><dl><dt><span class="appendix"><a href="manual/appendix_contributing.html">A.
+ Contributing
+Index: libstdc++-v3/doc/html/manual/configure.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/configure.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/configure.html (.../branches/gcc-5-branch)
+@@ -228,13 +228,17 @@
+ when standard error is not available. This option disables those
+ messages. This option does not change the library ABI.
+ </p></dd><dt><span class="term"><code class="code">--disable-libstdcxx-dual-abi</code></span></dt><dd><p>
+- Disable support for the new, C++11-conforming <code class="code">std::string</code>
+- implementation. This option changes the library ABI.
+- </p></dd><dt><span class="term"><code class="code">--with-default-libstdcxx-abi</code></span></dt><dd><p>
+- By default, the new <code class="code">std::string</code> implementation will be
+- declared and a macro must be defined to declare the old implementation
+- instead. That default can be reversed by configuring the library with
+- <code class="code">--with-default-libstdcxx-abi=c++98</code>.
++ Disable support for the new, C++11-conforming implementations of
++ <code class="code">std::string</code>, <code class="code">std::list</code> etc. so that the
++ library only provides definitions of types using the old ABI
++ (see <a class="xref" href="using_dual_abi.html" title="Dual ABI">Dual ABI</a>).
++ This option changes the library ABI.
++ </p></dd><dt><span class="term"><code class="code">--with-default-libstdcxx-abi=</code><em class="replaceable"><code>OPTION</code></em></span></dt><dd><p>
++ Set the default value for the <span class="symbol">_GLIBCXX_USE_CXX11_ABI</span>
++ macro (see <a class="xref" href="using_macros.html" title="Macros">Macros</a>).
++ The default is <code class="option">OPTION=c++11</code> which sets the macro to
++ <code class="literal">1</code>,
++ use <code class="option">OPTION=c++98</code> to set it to <code class="literal">0</code>.
+ This option does not change the library ABI.
+ </p></dd><dt><span class="term"><code class="code">--enable-vtable-verify</code>[default]</span></dt><dd><p>Use <code class="code">-fvtable-verify=std</code> to compile the C++
+ runtime with instrumentation for vtable verification. All virtual
+Index: libstdc++-v3/doc/html/manual/using.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/using.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/using.html (.../branches/gcc-5-branch)
+@@ -2,13 +2,19 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
+ Introduction
+
+-</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>
+- The set of features available in the GNU C++ library is shaped
+- by
++</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_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><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>
++ The set of features available in the GNU C++ library is shaped by
+ several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Invoking-GCC.html" target="_top">GCC
+ Command Options</a>. Options that impact libstdc++ are
+ enumerated and detailed in the table below.
+ </p><p>
+ 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.
+- </p><div class="table"><a id="table.cmd_options"></a><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Option Flags</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code class="literal">-std=c++98</code></td><td align="left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td align="left"><code class="literal">-std=gnu++98</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-std=c++11</code></td><td align="left">Use the 2011 ISO C++ standard.</td></tr><tr><td align="left"><code class="literal">-std=gnu++11</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-fexceptions</code></td><td align="left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td align="left"><code class="literal">-frtti</code></td><td align="left">As above, but RTTI-free dialect.</td></tr><tr><td align="left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td align="left">For ISO C++11 &lt;thread&gt;, &lt;future&gt;,
+- &lt;mutex&gt;, or &lt;condition_variable&gt;.</td></tr><tr><td align="left"><code class="literal">-fopenmp</code></td><td align="left">For <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Make </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Headers</td></tr></table></div></body></html>
+\ No newline at end of file
++ </p><div class="table"><a id="table.cmd_options"></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
++ <code class="filename">&lt;thread&gt;</code>,
++ <code class="filename">&lt;future&gt;</code>,
++ <code class="filename">&lt;mutex&gt;</code>,
++ or <code class="filename">&lt;condition_variable&gt;</code>.
++ </td></tr><tr><td align="left"><code class="literal">-latomic</code></td><td align="left">Linking to <code class="filename">libatomic</code>
++ is required for some uses of ISO C++11
++ <code class="filename">&lt;atomic&gt;</code>.
++ </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>
+\ No newline at end of file
+Index: libstdc++-v3/doc/html/manual/using_macros.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/using_macros.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/using_macros.html (.../branches/gcc-5-branch)
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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_dual_abi.html" title="Dual ABI" /></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_dual_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.using.macros"></a>Macros</h2></div></div></div><p>
+ All library macros begin with <code class="code">_GLIBCXX_</code>.
+ </p><p>
+ Furthermore, all pre-processor macros, switches, and
+@@ -7,8 +7,9 @@
+ file <code class="filename">c++config.h</code>, which
+ is generated during the libstdc++ configuration and build
+ process. This file is then included when needed by files part of
+- the public libstdc++ API, like &lt;ios&gt;. Most of these macros
+- should not be used by consumers of libstdc++, and are reserved
++ the public libstdc++ API, like
++ <code class="filename">&lt;ios&gt;</code>. Most of these
++ macros should not be used by consumers of libstdc++, and are reserved
+ for internal implementation use. <span class="emphasis"><em>These macros cannot
+ be redefined</em></span>.
+ </p><p>
+@@ -18,21 +19,22 @@
+ general public.
+ </p><p>Below is the macro which users may check for library version
+ information. </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="code">__GLIBCXX__</code></span></dt><dd><p>The current version of
+- libstdc++ in compressed ISO date format, form of an unsigned
++ libstdc++ in compressed ISO date format, as an unsigned
+ long. For details on the value of this particular macro for a
+- particular release, please consult this <a class="link" href="abi.html" title="ABI Policy and Guidelines">
+- document</a>.
++ particular release, please consult the <a class="link" href="abi.html" title="ABI Policy and Guidelines">
++ ABI Policy and Guidelines</a> appendix.
+ </p></dd></dl></div><p>Below are the macros which users may change with #define/#undef or
+ with -D/-U compiler flags. The default state of the symbol is
+ listed.</p><p><span class="quote">“<span class="quote">Configurable</span>”</span> (or <span class="quote">“<span class="quote">Not configurable</span>”</span>) means
+ that the symbol is initially chosen (or not) based on
+ --enable/--disable options at library build and configure time
+- (documented <a class="link" href="configure.html" title="Configure">here</a>), with the
+- various --enable/--disable choices being translated to
++ (documented in
++ <a class="link" href="configure.html" title="Configure">Configure</a>),
++ with the various --enable/--disable choices being translated to
+ #define/#undef).
+ </p><p> <acronym class="acronym">ABI</acronym> means that changing from the default value may
+- mean changing the <acronym class="acronym">ABI</acronym> of compiled code. In other words, these
+- choices control code which has already been compiled (i.e., in a
++ mean changing the <acronym class="acronym">ABI</acronym> of compiled code. In other words,
++ these choices control code which has already been compiled (i.e., in a
+ binary such as libstdc++.a/.so). If you explicitly #define or
+ #undef these macros, the <span class="emphasis"><em>headers</em></span> may see different code
+ paths, but the <span class="emphasis"><em>libraries</em></span> which you link against will not.
+@@ -48,24 +50,36 @@
+ be useful in updating old C++ code which no longer meet the
+ requirements of the language, or for checking current code
+ against new language standards.
++ </p></dd><dt><span class="term"><code class="code">_GLIBCXX_USE_CXX11_ABI</code></span></dt><dd><p>
++ Defined to the value <code class="literal">1</code> by default.
++ Configurable via <code class="code">--disable-libstdcxx-dual-abi</code>
++ and/or <code class="code">--with-default-libstdcxx-abi</code>.
++ ABI-changing.
++ When defined to a non-zero value the library headers will use the
++ new C++11-conforming ABI introduced in GCC 5, rather than the older
++ ABI introduced in GCC 3.4. This changes the definition of several
++ class templates, including <code class="classname">std:string</code>,
++ <code class="classname">std::list</code> and some locale facets.
++ For more details see <a class="xref" href="using_dual_abi.html" title="Dual ABI">Dual ABI</a>.
+ </p></dd><dt><span class="term"><code class="code">_GLIBCXX_CONCEPT_CHECKS</code></span></dt><dd><p>
+ Undefined by default. Configurable via
+ <code class="code">--enable-concept-checks</code>. When defined, performs
+ compile-time checking on certain template instantiations to
+ detect violations of the requirements of the standard. This
+- is described in more detail <a class="link" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks">here</a>.
++ is described in more detail in
++ <a class="link" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks">Compile Time Checks</a>.
+ </p></dd><dt><span class="term"><code class="code">_GLIBCXX_DEBUG</code></span></dt><dd><p>
+ Undefined by default. When defined, compiles user code using
+- the <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">debug mode</a>.
++ the <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">debug mode</a>.
+ </p></dd><dt><span class="term"><code class="code">_GLIBCXX_DEBUG_PEDANTIC</code></span></dt><dd><p>
+ Undefined by default. When defined while compiling with
+- the <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">debug mode</a>, makes
+- the debug mode extremely picky by making the use of libstdc++
+- extensions and libstdc++-specific behavior into errors.
++ the <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">debug mode</a>, makes
++ the debug mode extremely picky by making the use of libstdc++
++ extensions and libstdc++-specific behavior into errors.
+ </p></dd><dt><span class="term"><code class="code">_GLIBCXX_PARALLEL</code></span></dt><dd><p>Undefined by default. When defined, compiles user code
+- using the <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel
+- mode</a>.
++ using the <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel
++ mode</a>.
+ </p></dd><dt><span class="term"><code class="code">_GLIBCXX_PROFILE</code></span></dt><dd><p>Undefined by default. When defined, compiles user code
+- using the <a class="link" href="profile_mode.html" title="Chapter 19. Profile Mode">profile
+- mode</a>.
+- </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Namespaces</td></tr></table></div></body></html>
+\ No newline at end of file
++ using the <a class="link" href="profile_mode.html" title="Chapter 19. Profile Mode">profile
++ mode</a>.
++ </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dual_abi.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Dual ABI</td></tr></table></div></body></html>
+\ No newline at end of file
+Index: libstdc++-v3/doc/html/manual/ext_concurrency.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency.html (.../branches/gcc-5-branch)
+@@ -2,7 +2,7 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
+ Extensions
+
+-</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency_impl.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"></a>Chapter 30. Concurrency</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_use.html">Use</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <code class="filename">&lt;ext/concurrence.h&gt;</code>
++</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 Built-in Atomic Functions</a></span></dt><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_use.html">Use</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <code class="filename">&lt;ext/concurrence.h&gt;</code>
+ contains all the higher-level
+ constructs for playing with threads. In contrast to the atomics layer,
+ the concurrence layer consists largely of types. All types are defined within <code class="code">namespace __gnu_cxx</code>.
+Index: libstdc++-v3/doc/html/manual/using_exceptions.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/using_exceptions.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/using_exceptions.html (.../branches/gcc-5-branch)
+@@ -265,7 +265,7 @@
+ }
+ catch(...)
+ { this-&gt;_M_setstate(ios_base::badbit); }
+-</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="id-1.3.3.4.8.9.2"></a><p><span class="title"><em>
++</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="id-1.3.3.4.9.9.2"></a><p><span class="title"><em>
+ <a class="link" href="http://www.opengroup.org/austin/" target="_top">
+ System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
+ </a>
+@@ -274,39 +274,39 @@
+ . </span><span class="copyright">Copyright © 2008
+ The Open Group/The Institute of Electrical and Electronics
+ Engineers, Inc.
+- . </span></p></div><div class="biblioentry"><a id="id-1.3.3.4.8.9.3"></a><p><span class="title"><em>
++ . </span></p></div><div class="biblioentry"><a id="id-1.3.3.4.9.9.3"></a><p><span class="title"><em>
+ <a class="link" href="http://www.boost.org/community/error_handling.html" target="_top">
+ Error and Exception Handling
+ </a>
+ </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
+ Boost
+- . </span></span></p></div><div class="biblioentry"><a id="id-1.3.3.4.8.9.4"></a><p><span class="title"><em>
++ . </span></span></p></div><div class="biblioentry"><a id="id-1.3.3.4.9.9.4"></a><p><span class="title"><em>
+ <a class="link" href="http://www.boost.org/community/exception_safety.html" target="_top">
+ Exception-Safety in Generic Components
+ </a>
+ </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
+ Boost
+- . </span></span></p></div><div class="biblioentry"><a id="id-1.3.3.4.8.9.5"></a><p><span class="title"><em>
++ . </span></span></p></div><div class="biblioentry"><a id="id-1.3.3.4.9.9.5"></a><p><span class="title"><em>
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf" target="_top">
+ Standard Library Exception Policy
+ </a>
+ </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
+ WG21 N1077
+- . </span></span></p></div><div class="biblioentry"><a id="id-1.3.3.4.8.9.6"></a><p><span class="title"><em>
++ . </span></span></p></div><div class="biblioentry"><a id="id-1.3.3.4.9.9.6"></a><p><span class="title"><em>
+ <a class="link" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html" target="_top">
+ ia64 c++ abi exception handling
+ </a>
+ </em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
+ GNU
+- . </span></span></p></div><div class="biblioentry"><a id="id-1.3.3.4.8.9.7"></a><p><span class="title"><em>
++ . </span></span></p></div><div class="biblioentry"><a id="id-1.3.3.4.9.9.7"></a><p><span class="title"><em>
+ <a class="link" href="http://www.research.att.com/~bs/3rd_safe.pdf" target="_top">
+ Appendix E: Standard-Library Exception Safety
+ </a>
+- </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="id-1.3.3.4.8.9.8"></a><p><span class="citetitle"><em class="citetitle">
++ </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="id-1.3.3.4.9.9.8"></a><p><span class="citetitle"><em class="citetitle">
+ Exceptional C++
+ </em>. </span><span class="pagenums">
+ Exception-Safety Issues and Techniques
+- . </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry"><a id="id-1.3.3.4.8.9.9"></a><p><span class="title"><em>
++ . </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry"><a id="id-1.3.3.4.9.9.9"></a><p><span class="title"><em>
+ <a class="link" href="http://gcc.gnu.org/PR25191" target="_top">
+ GCC Bug 25191: exception_defines.h #defines try/catch
+ </a>
+Index: libstdc++-v3/doc/html/manual/abi.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/abi.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/abi.html (.../branches/gcc-5-branch)
+@@ -111,7 +111,7 @@
+ has the same filename and <code class="constant">DT_SONAME</code> as the
+ preceding release.
+ </p><p>It is versioned as follows:
+- </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: libstdc++.so.3.0.0</p></li><li class="listitem"><p>GCC 3.0.1: libstdc++.so.3.0.1</p></li><li class="listitem"><p>GCC 3.0.2: libstdc++.so.3.0.2</p></li><li class="listitem"><p>GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)</p></li><li class="listitem"><p>GCC 3.0.4: libstdc++.so.3.0.4</p></li><li class="listitem"><p>GCC 3.1.0: libstdc++.so.4.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.1.1: libstdc++.so.4.0.1</p></li><li class="listitem"><p>GCC 3.2.0: libstdc++.so.5.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.2.1: libstdc++.so.5.0.1</p></li><li class="listitem"><p>GCC 3.2.2: libstdc++.so.5.0.2</p></li><li class="listitem"><p>GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)</p></li><li class="listitem"><p>GCC 3.3.0: libstdc++.so.5.0.4</p></li><li class="listitem"><p>GCC 3.3.1: libstdc++.so.5.0.5</p></li><li class="listitem"><p>GCC 3.4.0: libstdc++.so.6.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.4.1: libstdc++.so.6.0.1</p></li><li class="listitem"><p>GCC 3.4.2: libstdc++.so.6.0.2</p></li><li class="listitem"><p>GCC 3.4.3: libstdc++.so.6.0.3</p></li><li class="listitem"><p>GCC 4.0.0: libstdc++.so.6.0.4</p></li><li class="listitem"><p>GCC 4.0.1: libstdc++.so.6.0.5</p></li><li class="listitem"><p>GCC 4.0.2: libstdc++.so.6.0.6</p></li><li class="listitem"><p>GCC 4.0.3: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.0: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.1: libstdc++.so.6.0.8</p></li><li class="listitem"><p>GCC 4.2.0: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)</p></li><li class="listitem"><p>GCC 4.2.2: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.3.0: libstdc++.so.6.0.10</p></li><li class="listitem"><p>GCC 4.4.0: libstdc++.so.6.0.11</p></li><li class="listitem"><p>GCC 4.4.1: libstdc++.so.6.0.12</p></li><li class="listitem"><p>GCC 4.4.2: libstdc++.so.6.0.13</p></li><li class="listitem"><p>GCC 4.5.0: libstdc++.so.6.0.14</p></li><li class="listitem"><p>GCC 4.6.0: libstdc++.so.6.0.15</p></li><li class="listitem"><p>GCC 4.6.1: libstdc++.so.6.0.16</p></li><li class="listitem"><p>GCC 4.7.0: libstdc++.so.6.0.17</p></li><li class="listitem"><p>GCC 4.8.0: libstdc++.so.6.0.18</p></li><li class="listitem"><p>GCC 4.8.3: libstdc++.so.6.0.19</p></li><li class="listitem"><p>GCC 4.9.0: libstdc++.so.6.0.20</p></li></ul></div><p>
++ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: libstdc++.so.3.0.0</p></li><li class="listitem"><p>GCC 3.0.1: libstdc++.so.3.0.1</p></li><li class="listitem"><p>GCC 3.0.2: libstdc++.so.3.0.2</p></li><li class="listitem"><p>GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)</p></li><li class="listitem"><p>GCC 3.0.4: libstdc++.so.3.0.4</p></li><li class="listitem"><p>GCC 3.1.0: libstdc++.so.4.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.1.1: libstdc++.so.4.0.1</p></li><li class="listitem"><p>GCC 3.2.0: libstdc++.so.5.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.2.1: libstdc++.so.5.0.1</p></li><li class="listitem"><p>GCC 3.2.2: libstdc++.so.5.0.2</p></li><li class="listitem"><p>GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)</p></li><li class="listitem"><p>GCC 3.3.0: libstdc++.so.5.0.4</p></li><li class="listitem"><p>GCC 3.3.1: libstdc++.so.5.0.5</p></li><li class="listitem"><p>GCC 3.4.0: libstdc++.so.6.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.4.1: libstdc++.so.6.0.1</p></li><li class="listitem"><p>GCC 3.4.2: libstdc++.so.6.0.2</p></li><li class="listitem"><p>GCC 3.4.3: libstdc++.so.6.0.3</p></li><li class="listitem"><p>GCC 4.0.0: libstdc++.so.6.0.4</p></li><li class="listitem"><p>GCC 4.0.1: libstdc++.so.6.0.5</p></li><li class="listitem"><p>GCC 4.0.2: libstdc++.so.6.0.6</p></li><li class="listitem"><p>GCC 4.0.3: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.0: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.1: libstdc++.so.6.0.8</p></li><li class="listitem"><p>GCC 4.2.0: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)</p></li><li class="listitem"><p>GCC 4.2.2: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.3.0: libstdc++.so.6.0.10</p></li><li class="listitem"><p>GCC 4.4.0: libstdc++.so.6.0.11</p></li><li class="listitem"><p>GCC 4.4.1: libstdc++.so.6.0.12</p></li><li class="listitem"><p>GCC 4.4.2: libstdc++.so.6.0.13</p></li><li class="listitem"><p>GCC 4.5.0: libstdc++.so.6.0.14</p></li><li class="listitem"><p>GCC 4.6.0: libstdc++.so.6.0.15</p></li><li class="listitem"><p>GCC 4.6.1: libstdc++.so.6.0.16</p></li><li class="listitem"><p>GCC 4.7.0: libstdc++.so.6.0.17</p></li><li class="listitem"><p>GCC 4.8.0: libstdc++.so.6.0.18</p></li><li class="listitem"><p>GCC 4.8.3: libstdc++.so.6.0.19</p></li><li class="listitem"><p>GCC 4.9.0: libstdc++.so.6.0.20</p></li><li class="listitem"><p>GCC 5.1.0: libstdc++.so.6.0.21</p></li></ul></div><p>
+ Note 1: Error should be libstdc++.so.3.0.3.
+ </p><p>
+ Note 2: Not strictly required.
+@@ -129,7 +129,7 @@
+ GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0
+ release.) If a particular release is not listed, it has the same
+ version labels as the preceding release.
+- </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.2: GLIBCXX_3.4.2</p></li><li class="listitem"><p>GCC 3.4.3: GLIBCXX_3.4.3</p></li><li class="listitem"><p>GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li class="listitem"><p>GCC 4.0.1: GLIBCXX_3.4.5</p></li><li class="listitem"><p>GCC 4.0.2: GLIBCXX_3.4.6</p></li><li class="listitem"><p>GCC 4.0.3: GLIBCXX_3.4.7</p></li><li class="listitem"><p>GCC 4.1.1: GLIBCXX_3.4.8</p></li><li class="listitem"><p>GCC 4.2.0: GLIBCXX_3.4.9</p></li><li class="listitem"><p>GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</p></li><li class="listitem"><p>GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4</p></li><li class="listitem"><p>GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6</p></li><li class="listitem"><p>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</p></li></ul></div></li><li class="listitem"><p>Incremental bumping of a compiler pre-defined macro,
++ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.2: GLIBCXX_3.4.2</p></li><li class="listitem"><p>GCC 3.4.3: GLIBCXX_3.4.3</p></li><li class="listitem"><p>GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li class="listitem"><p>GCC 4.0.1: GLIBCXX_3.4.5</p></li><li class="listitem"><p>GCC 4.0.2: GLIBCXX_3.4.6</p></li><li class="listitem"><p>GCC 4.0.3: GLIBCXX_3.4.7</p></li><li class="listitem"><p>GCC 4.1.1: GLIBCXX_3.4.8</p></li><li class="listitem"><p>GCC 4.2.0: GLIBCXX_3.4.9</p></li><li class="listitem"><p>GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</p></li><li class="listitem"><p>GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4</p></li><li class="listitem"><p>GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6</p></li><li class="listitem"><p>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</p></li><li class="listitem"><p>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</p></li></ul></div></li><li class="listitem"><p>Incremental bumping of a compiler pre-defined macro,
+ __GXX_ABI_VERSION. This macro is defined as the version of the
+ compiler v3 ABI, with g++ 3.0 being version 100. This macro will
+ be automatically defined whenever g++ is used (the curious can
+@@ -184,7 +184,7 @@
+ file's macro GLIBCXX_CONFIGURE (GLIBCPP_CONFIGURE before GCC 3.4.0).
+ </p><p>
+ C++ includes are versioned as follows:
+- </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.1: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.2: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.3: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.4: include/g++-v3</p></li><li class="listitem"><p>GCC 3.1.0: include/g++-v3</p></li><li class="listitem"><p>GCC 3.1.1: include/c++/3.1.1</p></li><li class="listitem"><p>GCC 3.2.0: include/c++/3.2</p></li><li class="listitem"><p>GCC 3.2.1: include/c++/3.2.1</p></li><li class="listitem"><p>GCC 3.2.2: include/c++/3.2.2</p></li><li class="listitem"><p>GCC 3.2.3: include/c++/3.2.3</p></li><li class="listitem"><p>GCC 3.3.0: include/c++/3.3</p></li><li class="listitem"><p>GCC 3.3.1: include/c++/3.3.1</p></li><li class="listitem"><p>GCC 3.3.2: include/c++/3.3.2</p></li><li class="listitem"><p>GCC 3.3.3: include/c++/3.3.3</p></li><li class="listitem"><p>GCC 3.4.x: include/c++/3.4.x</p></li><li class="listitem"><p>GCC 4.x.y: include/c++/4.x.y</p></li></ul></div><p></p></li></ol></div><p>
++ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.1: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.2: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.3: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.4: include/g++-v3</p></li><li class="listitem"><p>GCC 3.1.0: include/g++-v3</p></li><li class="listitem"><p>GCC 3.1.1: include/c++/3.1.1</p></li><li class="listitem"><p>GCC 3.2.0: include/c++/3.2</p></li><li class="listitem"><p>GCC 3.2.1: include/c++/3.2.1</p></li><li class="listitem"><p>GCC 3.2.2: include/c++/3.2.2</p></li><li class="listitem"><p>GCC 3.2.3: include/c++/3.2.3</p></li><li class="listitem"><p>GCC 3.3.0: include/c++/3.3</p></li><li class="listitem"><p>GCC 3.3.1: include/c++/3.3.1</p></li><li class="listitem"><p>GCC 3.3.2: include/c++/3.3.2</p></li><li class="listitem"><p>GCC 3.3.3: include/c++/3.3.3</p></li><li class="listitem"><p>GCC 3.4.x: include/c++/3.4.x</p></li><li class="listitem"><p>GCC 4.x.y: include/c++/4.x.y</p></li><li class="listitem"><p>GCC 5.x.0: include/c++/5.x.0</p></li></ul></div><p></p></li></ol></div><p>
+ Taken together, these techniques can accurately specify interface
+ and implementation changes in the GNU C++ tools themselves. Used
+ properly, they allow both the GNU C++ tools implementation, and
+Index: libstdc++-v3/doc/html/manual/intro.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/intro.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/intro.html (.../branches/gcc-5-branch)
+@@ -5,4 +5,4 @@
+ </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. 
+ Introduction
+ <a id="id-1.3.3.1.1.1" class="indexterm"></a>
+-</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.2014">C++ 2014</a></span></dt><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>
+\ No newline at end of file
++</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.2014">C++ 2014</a></span></dt><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_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><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>
+\ No newline at end of file
+Index: libstdc++-v3/doc/html/manual/api.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/api.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/api.html (.../branches/gcc-5-branch)
+@@ -242,7 +242,7 @@
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_460"></a><code class="constant">4.6</code></h3></div></div></div><p>
+ Use constexpr and nullptr where appropriate throughout the library.
+ </p><p>
+- The library was updated to to avoid including
++ The library was updated to avoid including
+ <code class="filename">stddef.h</code> in order
+ to reduce namespace pollution.
+ </p><p>Reference-count annotations to assist data race detectors.
+@@ -254,7 +254,7 @@
+ <code class="classname">steady_clock</code> as required by the final C++11
+ standard.
+ </p><p>A new clocale model for newlib is available.</p><p>
+- The library was updated to to avoid including
++ The library was updated to avoid including
+ <code class="filename">unistd.h</code> in order
+ to reduce namespace pollution.
+ </p><p>Debug Mode was improved for unordered containers. </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_480"></a><code class="constant">4.8</code></h3></div></div></div><p>
+Index: libstdc++-v3/doc/html/manual/strings.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/strings.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/strings.html (.../branches/gcc-5-branch)
+@@ -267,7 +267,7 @@
+ a <code class="code">vector</code>'s memory usage
+ (see <a class="link" href="../faq.html#faq.size_equals_capacity" title="7.8.">this FAQ
+ entry</a>) but the regular copy constructor cannot be used
+- because libstdc++'s <code class="code">string</code> is Copy-On-Write.
++ because libstdc++'s <code class="code">string</code> is Copy-On-Write in GCC 3.
+ </p><p>In <a class="link" href="status.html#status.iso.2011" title="C++ 2011">C++11</a> mode you can call
+ <code class="code">s.shrink_to_fit()</code> to achieve the same effect as
+ <code class="code">s.reserve(s.size())</code>.
+Index: libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html (.../branches/gcc-5-branch)
+@@ -1,12 +1,20 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 Built-in Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either
+ implemented via compiler intrinsics (if the underlying host is
+ capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred. However, as
+ the compiler builtins for atomics are not universally implemented,
+ using them directly is problematic, and can result in undefined
+-function calls. (An example of an undefined symbol from the use
++function calls.
++</p><p>Prior to GCC 4.7 the older <code class="code">__sync</code> intrinsics were used.
++An example of an undefined symbol from the use
+ of <code class="code">__sync_fetch_and_add</code> on an unsupported host is a
+-missing reference to <code class="code">__sync_fetch_and_add_4</code>.)
++missing reference to <code class="code">__sync_fetch_and_add_4</code>.
++</p><p>Current releases use the newer <code class="code">__atomic</code> intrinsics,
++which are implemented by library calls if the hardware doesn't support them.
++Undefined references to functions like
++<code class="code">__atomic_is_lock_free</code> should be resolved by linking to
++<code class="filename">libatomic</code>, which is usually
++installed alongside libstdc++.
+ </p><p>In addition, on some hosts the compiler intrinsics are enabled
+ conditionally, via the <code class="code">-march</code> command line flag. This makes
+ usage vary depending on the target hardware and the flags used during
+Index: libstdc++-v3/doc/html/manual/extensions.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/extensions.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/extensions.html (.../branches/gcc-5-branch)
+@@ -68,4 +68,4 @@
+ Text <code class="function">modify</code> Up
+ </a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#performance.priority_queue.text_modify_down">
+ Text <code class="function">modify</code> Down
+- </a></span></dt></dl></dd><dt><span class="section"><a href="policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_ack.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="policy_data_structures.html#pbds.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_containers.html">23. HP/SGI Extensions</a></span></dt><dd><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></dd><dt><span class="chapter"><a href="ext_utilities.html">24. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">25. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">26. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">27. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">28. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">29. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">30. Concurrency</a></span></dt><dd><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></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="io_and_c.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="ext_preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Interacting with C </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
+\ No newline at end of file
++ </a></span></dt></dl></dd><dt><span class="section"><a href="policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_ack.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="policy_data_structures.html#pbds.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_containers.html">23. HP/SGI Extensions</a></span></dt><dd><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></dd><dt><span class="chapter"><a href="ext_utilities.html">24. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">25. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">26. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">27. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">28. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">29. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">30. Concurrency</a></span></dt><dd><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 Built-in 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></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="io_and_c.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="ext_preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Interacting with C </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
+\ No newline at end of file
+Index: libstdc++-v3/doc/html/manual/using_dual_abi.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/using_dual_abi.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/using_dual_abi.html (.../branches/gcc-5-branch)
+@@ -0,0 +1,65 @@
++<?xml version="1.0" encoding="UTF-8" standalone="no"?>
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Dual ABI</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_namespaces.html" title="Namespaces" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Dual ABI</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_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.abi"></a>Dual ABI</h2></div></div></div><p> In the GCC 5.1 release libstdc++ introduced a new library ABI that
++ includes new implementations of <code class="classname">std::string</code> and
++ <code class="classname">std::list</code>. These changes were necessary to conform
++ to the 2011 C++ standard which forbids Copy-On-Write strings and requires
++ lists to keep track of their size.
++</p><p> In order to maintain backwards compatibility for existing code linked
++ to libstdc++ the library's soname has not changed and the old
++ implementations are still supported in parallel with the new ones.
++ This is achieved by defining the new implementations in an inline namespace
++ so they have different names for linkage purposes, e.g. the new version of
++ <code class="classname">std::list&lt;int&gt;</code> is actually defined as
++ <code class="classname">std::__cxx11::list&lt;int&gt;</code>. Because the symbols
++ for the new implementations have different names the definitions for both
++ versions can be present in the same library.
++</p><p> The <span class="symbol">_GLIBCXX_USE_CXX11_ABI</span> macro (see
++<a class="xref" href="using_macros.html" title="Macros">Macros</a>) controls whether
++ the declarations in the library headers use the old or new ABI.
++ So the decision of which ABI to use can be made separately for each
++ source file being compiled.
++ Using the default configuration options for GCC the default value
++ of the macro is <code class="literal">1</code> which causes the new ABI to be active,
++ so to use the old ABI you must explicitly define the macro to
++ <code class="literal">0</code> before including any library headers.
++ (Be aware that some GNU/Linux distributions configure GCC 5 differently so
++ that the default value of the macro is <code class="literal">0</code> and users must
++ define it to <code class="literal">1</code> to enable the new ABI.)
++</p><p> Although the changes were made for C++11 conformance, the choice of ABI
++ to use is independent of the <code class="option">-std</code> option used to compile
++ your code, i.e. for a given GCC build the default value of the
++ <span class="symbol">_GLIBCXX_USE_CXX11_ABI</span> macro is the same for all dialects.
++ This ensures that the <code class="option">-std</code> does not change the ABI, so
++ that it is straightforward to link C++03 and C++11 code together.
++</p><p> Because <code class="classname">std::string</code> is used extensively
++ throughout the library a number of other types are also defined twice,
++ including the stringstream classes and several facets used by
++ <code class="classname">std::locale</code>. The standard facets which are always
++ installed in a locale may be present twice, with both ABIs, to ensure that
++ code like
++ <code class="code">std::use_facet&lt;std::time_get&lt;char&gt;&gt;(locale);</code>
++ will work correctly for both <code class="classname">std::time_get</code> and
++ <code class="classname">std::__cxx11::time_get</code> (even if a user-defined
++ facet that derives from one or other version of
++ <code class="classname">time_get</code> is installed in the locale).
++</p><p> Although the standard exception types defined in
++ <code class="filename">&lt;stdexcept&gt;</code> use strings, they
++ are not defined twice, so that a <code class="classname">std::out_of_range</code>
++ exception thrown in one file can always be caught by a suitable handler in
++ another file, even if the two files are compiled with different ABIs.
++</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.abi.trouble"></a>Troubleshooting</h3></div></div></div><p> If you get linker errors about undefined references to symbols
++ that involve types in the <code class="code">std::__cxx11</code> namespace or the tag
++ <code class="code">[abi:cxx11]</code> then it probably indicates that you are trying to
++ link together object files that were compiled with different values for the
++ <span class="symbol">_GLIBCXX_USE_CXX11_ABI</span> macro. This commonly happens when
++ linking to a third-party library that was compiled with an older version
++ of GCC. If the third-party library cannot be rebuilt with the new ABI then
++ you will need to recompile your code with the old ABI.
++</p><p> Not all uses of the new ABI will cause changes in symbol names, for
++ example a class with a <code class="classname">std::string</code> member variable
++ will have the same mangled name whether compiled with the old or new ABI.
++ In order to detect such problems the new types and functions are
++ annotated with the <span class="property">abi_tag</span> attribute, allowing the
++ compiler to warn about potential ABI incompatibilities in code using them.
++ Those warnings can be enabled with the <code class="option">-Wabi-tag</code> option.
++</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Macros </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Namespaces</td></tr></table></div></body></html>
+\ No newline at end of file
+Index: libstdc++-v3/doc/html/manual/using_namespaces.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/using_namespaces.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/using_namespaces.html (.../branches/gcc-5-branch)
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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_dual_abi.html" title="Dual ABI" /><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_dual_abi.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.
+ </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
+ within namespace std." This includes namespaces nested
+ within <code class="code">namespace std</code>, such as <code class="code">namespace
+@@ -10,7 +10,10 @@
+ </p></li><li class="listitem"><p>__gnu_</p><p>Indicating one of several GNU extensions. Choices
+ include <code class="code">__gnu_cxx</code>, <code class="code">__gnu_debug</code>, <code class="code">__gnu_parallel</code>,
+ and <code class="code">__gnu_pbds</code>.
+-</p></li></ul></div><p> A complete list of implementation namespaces (including namespace contents) is available in the generated source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html" target="_top">documentation</a>.
++</p></li></ul></div><p> The library uses a number of inline namespaces as implementation
++details that are not intended for users to refer to directly, these include
++<code class="code">std::__detail</code>, <code class="code">std::__cxx11</code> and <code class="code">std::_V2</code>.
++</p><p> A complete list of implementation namespaces (including namespace contents) is available in the generated source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html" target="_top">documentation</a>.
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.std"></a>namespace std</h3></div></div></div><p>
+ One standard requirement is that the library components are defined
+ in <code class="code">namespace std::</code>. Thus, in order to use these types or
+@@ -57,4 +60,4 @@
+ std::string;</code> (depending on whether the system has
+ libstdc++ in <code class="code">std::</code> or not). (ideas from
+ Llewelly and Karl Nelson)
+-</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Macros </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Linking</td></tr></table></div></body></html>
+\ No newline at end of file
++</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_dual_abi.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Dual ABI </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Linking</td></tr></table></div></body></html>
+\ No newline at end of file
+Index: libstdc++-v3/doc/html/manual/using_concurrency.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/using_concurrency.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/using_concurrency.html (.../branches/gcc-5-branch)
+@@ -24,13 +24,14 @@
+ all required macros to a compilation (if any such flags are
+ required then you must provide the flag for all compilations not
+ just linking) and link-library additions and/or replacements at
+- link time. The documentation is weak. Here is a quick summary
+- to display how ad hoc this is: On Solaris, both -pthreads and
+- -threads (with subtly different meanings) are honored.
+- On GNU/Linux x86, -pthread is honored. On FreeBSD,
+- -pthread is honored. Some other ports use other switches.
+- AFAIK, none of this is properly documented anywhere other than
+- in ``gcc -dumpspecs'' (look at lib and cpp entries).
++ link time. The documentation is weak. On several targets (including
++ GNU/Linux, Solaris and various BSDs) -pthread is honored.
++ Some other ports use other switches.
++ This is not well documented anywhere other than
++ in "gcc -dumpspecs" (look at the 'lib' and 'cpp' entries).
++ </p><p>
++ Some uses of <code class="classname">std::atomic</code> also require linking
++ to <code class="filename">libatomic</code>.
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.thread_safety"></a>Thread Safety</h3></div></div></div><p>
+ In the terms of the 2011 C++ standard a thread-safe program is one which
+ does not perform any conflicting non-atomic operations on memory locations
+@@ -59,11 +60,16 @@
+ Requisite command-line flags are used for atomic operations
+ and threading. Examples of this include <code class="code">-pthread</code>
+ and <code class="code">-march=native</code>, although specifics vary
+- depending on the host environment. See <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html" target="_top">Machine
++ depending on the host environment. See
++ <a class="link" href="using.html#manual.intro.using.flags" title="Command Options">Command Options</a> and
++ <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html" target="_top">Machine
+ Dependent Options</a>.
+ </p></li><li class="listitem"><p>
+- An implementation of atomicity.h functions
+- exists for the architecture in question. See the internals documentation for more <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">details</a>.
++ An implementation of the
++ <code class="filename">atomicity.h</code> functions
++ exists for the architecture in question. See the
++ <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">internals
++ documentation</a> for more details.
+ </p></li></ul></div><p>The user code must guard against concurrent function calls which
+ access any particular library object's state when one or more of
+ those accesses modifies the state. An object will be modified by
+Index: libstdc++-v3/doc/html/manual/index.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/index.html (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/index.html (.../branches/gcc-5-branch)
+@@ -4,7 +4,7 @@
+ </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.
+ Introduction
+
+-</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.2014">C++ 2014</a></span></dt><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.
++</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.2014">C++ 2014</a></span></dt><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_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><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.
+ Standard Contents
+ </a></span></dt><dd><dl><dt><span class="chapter"><a href="support.html">4.
+ Support
+@@ -108,7 +108,7 @@
+ Text <code class="function">modify</code> Up
+ </a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#performance.priority_queue.text_modify_down">
+ Text <code class="function">modify</code> Down
+- </a></span></dt></dl></dd><dt><span class="section"><a href="policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_ack.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="policy_data_structures.html#pbds.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_containers.html">23. HP/SGI Extensions</a></span></dt><dd><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></dd><dt><span class="chapter"><a href="ext_utilities.html">24. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">25. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">26. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">27. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">28. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">29. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">30. Concurrency</a></span></dt><dd><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></dd></dl></dd><dt><span class="part"><a href="appendix.html">IV.
++ </a></span></dt></dl></dd><dt><span class="section"><a href="policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_ack.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="policy_data_structures.html#pbds.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_containers.html">23. HP/SGI Extensions</a></span></dt><dd><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></dd><dt><span class="chapter"><a href="ext_utilities.html">24. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">25. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">26. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">27. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">28. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">29. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">30. Concurrency</a></span></dt><dd><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 Built-in 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></dd></dl></dd><dt><span class="part"><a href="appendix.html">IV.
+ Appendices
+ </a></span></dt><dd><dl><dt><span class="appendix"><a href="appendix_contributing.html">A.
+ Contributing
Index: libstdc++-v3/include/debug/vector
===================================================================
--- a/src/libstdc++-v3/include/debug/vector (.../tags/gcc_5_1_0_release)
@@ -5245,6 +6256,74 @@ Index: libstdc++-v3/include/profile/array
};
// Array comparisons.
+Index: libstdc++-v3/include/bits/stl_algobase.h
+===================================================================
+--- a/src/libstdc++-v3/include/bits/stl_algobase.h (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/include/bits/stl_algobase.h (.../branches/gcc-5-branch)
+@@ -715,8 +715,8 @@
+ __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c)
+ {
+ const _Tp __tmp = __c;
+- __builtin_memset(__first, static_cast<unsigned char>(__tmp),
+- __last - __first);
++ if (const size_t __len = __last - __first)
++ __builtin_memset(__first, static_cast<unsigned char>(__tmp), __len);
+ }
+
+ /**
+@@ -822,8 +822,9 @@
+ static bool
+ equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2)
+ {
+- return !__builtin_memcmp(__first1, __first2, sizeof(_Tp)
+- * (__last1 - __first1));
++ if (const size_t __len = (__last1 - __first1))
++ return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len);
++ return true;
+ }
+ };
+
+@@ -927,9 +928,10 @@
+ {
+ const size_t __len1 = __last1 - __first1;
+ const size_t __len2 = __last2 - __first2;
+- const int __result = __builtin_memcmp(__first1, __first2,
+- std::min(__len1, __len2));
+- return __result != 0 ? __result < 0 : __len1 < __len2;
++ if (const size_t __len = std::min(__len1, __len2))
++ if (int __result = __builtin_memcmp(__first1, __first2, __len))
++ return __result < 0;
++ return __len1 < __len2;
+ }
+ };
+
+Index: libstdc++-v3/include/bits/locale_conv.h
+===================================================================
+--- a/src/libstdc++-v3/include/bits/locale_conv.h (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/include/bits/locale_conv.h (.../branches/gcc-5-branch)
+@@ -1,6 +1,6 @@
+ // wstring_convert implementation -*- C++ -*-
+
+-// Copyright (C) 2012 Free Software Foundation, Inc.
++// Copyright (C) 2015 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library. This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -198,12 +198,12 @@
+ auto __outstr = __err ? _OutStr(__err->get_allocator()) : _OutStr();
+ size_t __outchars = 0;
+ auto __next = __first;
+- const auto __maxlen = _M_cvt->max_length();
++ const auto __maxlen = _M_cvt->max_length() + 1;
+
+ codecvt_base::result __result;
+ do
+ {
+- __outstr.resize(__outstr.size() + (__last - __next) + __maxlen);
++ __outstr.resize(__outstr.size() + (__last - __next) * __maxlen);
+ auto __outnext = &__outstr.front() + __outchars;
+ auto const __outlast = &__outstr.back() + 1;
+ __result = ((*_M_cvt).*__memfn)(_M_state, __next, __last, __next,
Index: libstdc++-v3/include/bits/basic_string.h
===================================================================
--- a/src/libstdc++-v3/include/bits/basic_string.h (.../tags/gcc_5_1_0_release)
@@ -5354,7 +6433,67 @@ Index: libstdc++-v3/ChangeLog
===================================================================
--- a/src/libstdc++-v3/ChangeLog (.../tags/gcc_5_1_0_release)
+++ b/src/libstdc++-v3/ChangeLog (.../branches/gcc-5-branch)
-@@ -1,3 +1,129 @@
+@@ -1,3 +1,189 @@
++2015-06-08 Jonathan Wakely <jwakely@redhat.com>
++
++ Backported from mainline
++ 2015-06-01 Jonathan Wakely <jwakely@redhat.com>
++
++ * testsuite/lib/libstdc++.exp (libstdc++_init): Unset LANGUAGE
++ environment variable.
++
++ PR libstdc++/66354
++ * include/bits/stl_algobase.h (__fill_a): Check length before calling
++ memset.
++
++ PR libstdc++/66327
++ * include/bits/stl_algobase.h (__equal<true>::equal): Do not call
++ memcmp for empty ranges.
++ (__lexicographical_compare<true>::__lc): Likewise.
++
++ Backported from mainline
++ 2015-06-02 Jonathan Wakely <jwakely@redhat.com>
++
++ * doc/xml/manual/abi.xml: Document versioning for 5.1.0 release.
++ * doc/xml/manual/evolution.xml: Fix typos.
++ * doc/html/manual/*: Regenerate.
++
++ Backported from mainline
++ 2015-04-21 Jonathan Wakely <jwakely@redhat.com>
++
++ * doc/xml/manual/configure.xml: Update descriptions of options
++ affecting dual ABI and add cross-references.
++ * doc/xml/manual/strings.xml: Clarify that string isn't COW now.
++ * doc/xml/manual/using.xml: Document ABI transition.
++ * doc/html/*: Regenerate.
++
++ Backported from mainline
++ 2015-04-20 Jonathan Wakely <jwakely@redhat.com>
++
++ * doc/xml/manual/concurrency_extensions.xml: Update documentation
++ on atomics.
++ * doc/xml/manual/using.xml: Likewise. Improve markup.
++ * doc/html/*: Regenerate.
++
++2015-06-08 Jonathan Wakely <jwakely@redhat.com>
++
++ PR libstdc++/66441
++ * testsuite/22_locale/conversions/string/66441.cc: New.
++ * include/bits/locale_conv.h (__do_str_codecvt): Reserve enough space
++ in the output string for BOM and complete result.
++
++ PR libstdc++/66417
++ * src/c++11/codecvt.cc (write_utf16_code_point): Use adjust_byte_order
++ for single UTF-16 units.
++ * testsuite/22_locale/codecvt/codecvt_utf16/66417.cc: New.
++
++2015-06-04 Renlin Li <renlin.li@arm.com>
++
++ Backported from mainline
++ 2015-06-02 Renlin Li <renlin.li@arm.com>
++
++ * testsuite/27_io/fpos/14775.cc: Add _GLIBCXX_HAVE_LIMIT_FSIZE check.
++
+2015-05-28 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/65352
@@ -5484,11 +6623,157 @@ Index: libstdc++-v3/ChangeLog
2015-04-22 Release Manager
* GCC 5.1.0 released.
+Index: libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/66417.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/66417.cc (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/66417.cc (.../branches/gcc-5-branch)
+@@ -0,0 +1,76 @@
++// Copyright (C) 2015 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3. If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-options "-std=gnu++11" }
++
++#include <codecvt>
++#include <testsuite_hooks.h>
++
++using namespace std;
++
++void
++test01()
++{
++ constexpr auto mode = generate_header;
++ codecvt_utf16<char32_t, 0x10ffff, mode> cvt;
++ mbstate_t state{};
++ const char32_t* from = U"ABC";
++ const char32_t* from_next;
++ char to[100];
++ char* to_next;
++
++ cvt.out(state, from, from + 3, from_next, to, to + 100, to_next);
++
++ VERIFY((unsigned char)to[0] == 0xfe);
++ VERIFY((unsigned char)to[1] == 0xff);
++ VERIFY(to[2] == 0x00);
++ VERIFY(to[3] == 0x41);
++ VERIFY(to[4] == 0x00);
++ VERIFY(to[5] == 0x42);
++ VERIFY(to[6] == 0x00);
++ VERIFY(to[7] == 0x43);
++}
++
++void
++test02()
++{
++ constexpr auto mode = codecvt_mode(generate_header|little_endian);
++ codecvt_utf16<char32_t, 0x10ffff, mode> cvt;
++ mbstate_t state{};
++ const char32_t* from = U"ABC";
++ const char32_t* from_next;
++ char to[100];
++ char* to_next;
++
++ cvt.out(state, from, from + 3, from_next, to, to + 100, to_next);
++
++ VERIFY((unsigned char)to[0] == 0xff);
++ VERIFY((unsigned char)to[1] == 0xfe);
++ VERIFY(to[2] == 0x41);
++ VERIFY(to[3] == 0x00);
++ VERIFY(to[4] == 0x42);
++ VERIFY(to[5] == 0x00);
++ VERIFY(to[6] == 0x43);
++ VERIFY(to[7] == 0x00);
++}
++
++int
++main()
++{
++ test01();
++ test02();
++}
+Index: libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc (.../branches/gcc-5-branch)
+@@ -0,0 +1,49 @@
++// Copyright (C) 2015 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3. If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-options "-std=gnu++11" }
++
++// libstdc++/66441
++
++#include <locale>
++#include <codecvt>
++#include <testsuite_hooks.h>
++
++void
++test01()
++{
++ // convert from UCS-4 to UTF16BE with BOM.
++ using cvt = std::codecvt_utf16<char32_t, 0x10FFFF, std::generate_header>;
++ std::wstring_convert<cvt, char32_t> conv;
++ auto to = conv.to_bytes(U"ab\u00e7");
++
++ VERIFY( to.length() == 8 );
++ VERIFY( (unsigned char)to[0] == 0xfe );
++ VERIFY( (unsigned char)to[1] == 0xff );
++ VERIFY( (unsigned char)to[2] == 0x00 );
++ VERIFY( (unsigned char)to[3] == 0x61 );
++ VERIFY( (unsigned char)to[4] == 0x00 );
++ VERIFY( (unsigned char)to[5] == 0x62 );
++ VERIFY( (unsigned char)to[6] == 0x00 );
++ VERIFY( (unsigned char)to[7] == 0xe7 );
++}
++
++int
++main()
++{
++ test01();
++}
Index: libstdc++-v3/testsuite/lib/libstdc++.exp
===================================================================
--- a/src/libstdc++-v3/testsuite/lib/libstdc++.exp (.../tags/gcc_5_1_0_release)
+++ b/src/libstdc++-v3/testsuite/lib/libstdc++.exp (.../branches/gcc-5-branch)
-@@ -1221,6 +1221,62 @@
+@@ -107,6 +107,10 @@
+ setenv LC_ALL C
+ setenv LANG C
+
++ # LANGUAGE changes the behavior of GNU gettext(3) and causes
++ # std::messages tests to fail.
++ array unset env LANGUAGE
++
+ # Many hosts now default to a non-ASCII C locale, however, so
+ # they can set a charset encoding here if they need.
+ if { [ishost "*-*-cygwin*"] } {
+@@ -1221,6 +1225,62 @@
return $et_c99_math
}
@@ -5624,6 +6909,19 @@ Index: libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc
// Copyright (C) 2008-2015 Free Software Foundation, Inc.
//
+Index: libstdc++-v3/testsuite/27_io/fpos/14775.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/27_io/fpos/14775.cc (.../tags/gcc_5_1_0_release)
++++ b/src/libstdc++-v3/testsuite/27_io/fpos/14775.cc (.../branches/gcc-5-branch)
+@@ -27,7 +27,7 @@
+ // Basic test for LFS support.
+ void test01()
+ {
+-#ifdef _GLIBCXX_USE_LFS
++#if defined (_GLIBCXX_USE_LFS) && defined (_GLIBCXX_HAVE_LIMIT_FSIZE)
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
Index: libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc
===================================================================
--- a/src/libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc (.../tags/gcc_5_1_0_release)
@@ -6222,7 +7520,25 @@ Index: gcc/DATESTAMP
+++ b/src/gcc/DATESTAMP (.../branches/gcc-5-branch)
@@ -1 +1 @@
-20150422
-+20150602
++20150609
+Index: gcc/postreload.c
+===================================================================
+--- a/src/gcc/postreload.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/postreload.c (.../branches/gcc-5-branch)
+@@ -1363,9 +1363,12 @@
+ if (CALL_P (insn))
+ {
+ rtx link;
++ HARD_REG_SET used_regs;
+
++ get_call_reg_set_usage (insn, &used_regs, call_used_reg_set);
++
+ for (r = 0; r < FIRST_PSEUDO_REGISTER; r++)
+- if (call_used_regs[r])
++ if (TEST_HARD_REG_BIT (used_regs, r))
+ {
+ reg_state[r].use_index = RELOAD_COMBINE_MAX_USES;
+ reg_state[r].store_ruid = reload_combine_ruid;
Index: gcc/tree.h
===================================================================
--- a/src/gcc/tree.h (.../tags/gcc_5_1_0_release)
@@ -6588,7 +7904,88 @@ Index: gcc/ChangeLog
===================================================================
--- a/src/gcc/ChangeLog (.../tags/gcc_5_1_0_release)
+++ b/src/gcc/ChangeLog (.../branches/gcc-5-branch)
-@@ -1,3 +1,520 @@
+@@ -1,3 +1,601 @@
++2015-06-08 Uros Bizjak <ubizjak@gmail.com>
++
++ Backport from mainline:
++ 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
++
++ PR target/66275
++ * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
++ to determine current function ABI.
++ (ix86_function_value_regno_p): Ditto.
++
++2015-06-08 Tom de Vries <tom@codesourcery.com>
++
++ backport from mainline:
++ 2015-06-08 Tom de Vries <tom@codesourcery.com>
++
++ PR rtl-optimization/66444
++ * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
++ call_used_regs.
++
++2015-06-08 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
++
++ * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
++
++2015-06-06 John David Anglin <danglin@gcc.gnu.org>
++
++ PR bootstrap/66319
++ * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
++ defines. Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
++ Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
++ later.
++ * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
++ Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
++ _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
++ _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
++ and non iso if unix2003.
++
++2015-06-03 Richard Biener <rguenther@suse.de>
++
++ Backport from mainline
++ 2015-06-02 Richard Biener <rguenther@suse.de>
++
++ PR debug/65549
++ * dwarf2out.c (lookup_context_die): New function.
++ (resolve_addr): Avoid forcing a full DIE for the
++ target of a DW_TAG_GNU_call_site during late compilation.
++ Instead create a stub DIE without a type if we have a
++ context DIE present.
++
++ 2015-06-01 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/66280
++ * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
++ def-use walking.
++
++ 2015-05-27 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/66272
++ Revert parts of
++ 2014-08-15 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/62031
++ * tree-data-ref.c (dr_analyze_indices): Do not set
++ DR_UNCONSTRAINED_BASE.
++ (dr_may_alias_p): All indirect accesses have to go the
++ formerly DR_UNCONSTRAINED_BASE path.
++ * tree-data-ref.h (struct indices): Remove
++ unconstrained_base member.
++ (DR_UNCONSTRAINED_BASE): Remove.
++
++ 2015-05-21 Richard Biener <rguenther@suse.de>
++
++ PR c++/66211
++ * match.pd: Guard pattern optimzing (int)(float)int
++ conversions to apply only on GIMPLE.
++
++ 2015-05-13 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/66123
++ * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
++ a taken edge.
++
+2015-06-02 Renlin Li <renlin.li@arm.com>
+
+ Backport from mainline
@@ -7109,7 +8506,7 @@ Index: gcc/ChangeLog
2015-04-22 Release Manager
* GCC 5.1.0 released.
-@@ -5384,6 +5901,7 @@
+@@ -5384,6 +5982,7 @@
2015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Jakub Jelinek <jakub@redhat.com>
@@ -9117,6 +10514,19 @@ Index: gcc/testsuite/gcc.target/i386/avx512vbmi-vpermt2b-2.c
#include "avx512f-mask-type.h"
#define NUM 32
+Index: gcc/testsuite/gcc.target/i386/pr66275.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/pr66275.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/pr66275.c (.../branches/gcc-5-branch)
+@@ -0,0 +1,8 @@
++/* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */
++/* { dg-options "-mabi=ms -fdump-rtl-dfinit" } */
++
++void
++__attribute__((sysv_abi))
++foo () {};
++
++/* { dg-final { scan-rtl-dump "entry block defs\[^\\n]*\\\[si\\]\[^\\n]*\\\[di\\]" "dfinit" } } */
Index: gcc/testsuite/gcc.target/i386/avx512vbmi-vpermi2b-2.c
===================================================================
--- a/src/gcc/testsuite/gcc.target/i386/avx512vbmi-vpermi2b-2.c (.../tags/gcc_5_1_0_release)
@@ -9884,6 +11294,26 @@ Index: gcc/testsuite/lib/target-supports.exp
} elseif [check_vsx_hw_available] {
lappend DEFAULT_VECTCFLAGS "-mvsx" "-mno-allow-movmisalign"
}
+Index: gcc/testsuite/gfortran.dg/type_is_1.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/type_is_1.f90 (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/type_is_1.f90 (.../branches/gcc-5-branch)
+@@ -0,0 +1,15 @@
++! { dg-do compile }
++! PR fortran/66245
++! Original testcase by Gerhard Steinmetz
++! <gerhard dot steinmetz dot fortran at t-online dot de>
++program p
++ type t; end type
++ class(t), allocatable :: x
++ call s
++ contains
++ subroutine s
++ select type ( x )
++ type is ( ) ! { dg-error "error in TYPE IS" }
++ end select
++ end subroutine s
++end program p
Index: gcc/testsuite/gfortran.dg/generic_29.f90
===================================================================
--- a/src/gcc/testsuite/gfortran.dg/generic_29.f90 (.../tags/gcc_5_1_0_release)
@@ -9938,6 +11368,33 @@ Index: gcc/testsuite/gfortran.dg/pr65429.f90
+ if ((u(1)/='qwerty').or.(u(2)/='asdfgh').or.(u(3)/='zxcvbn')) call abort
+
+end program foo
+Index: gcc/testsuite/gfortran.dg/equiv_9.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/equiv_9.f90 (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/equiv_9.f90 (.../branches/gcc-5-branch)
+@@ -0,0 +1,22 @@
++! { dg-do run }
++! PR fortran/66377
++!
++module constant
++ integer x1, x2, x3
++ integer x(3)
++ equivalence (x(1),x1), (x2,x(2)), (x3,x(3))
++end module
++
++program test
++ use constant
++ implicit none
++ x = (/1, 2, 3/)
++ call another()
++end program
++
++subroutine another()
++ use constant, only : x2
++ implicit none
++ if (x2 /= 2) call abort
++end subroutine
++! { dg-final { cleanup-modules "constant" } }
Index: gcc/testsuite/gfortran.dg/storage_size_6.f90
===================================================================
--- a/src/gcc/testsuite/gfortran.dg/storage_size_6.f90 (.../tags/gcc_5_1_0_release)
@@ -10023,6 +11480,46 @@ Index: gcc/testsuite/gfortran.dg/filepos1.f90
+ endfile (- ! { dg-error "Expecting END SUBROUTINE" }
+end subroutine p3
+
+Index: gcc/testsuite/gfortran.dg/blockdata_9.f
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/blockdata_9.f (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/blockdata_9.f (.../branches/gcc-5-branch)
+@@ -0,0 +1,13 @@
++! { dg-do compile }
++! { dg-options "-fno-automatic -finit-local-zero" }
++! PR fortran/66347
++
++ block data
++ implicit none
++ integer i, n
++ parameter (n=1)
++ character*2 s1(n)
++ character*8 s2(n)
++ common /foo/ s1, s2
++ data (s1(i),s2(i),i=1,n)/"ab","12345678"/
++ end
+Index: gcc/testsuite/gfortran.dg/reshape_7.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/reshape_7.f90 (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/reshape_7.f90 (.../branches/gcc-5-branch)
+@@ -0,0 +1,17 @@
++! { dg-do compile }
++! PR fortran/66380
++!
++subroutine p0
++ integer, parameter :: sh(2) = [2, 3]
++ integer, parameter :: &
++ & a(2,2) = reshape([1, 2, 3, 4], sh) ! { dg-error "Different shape" }
++ if (a(1,1) /= 0) call abort
++end subroutine p0
++
++
++subroutine p1
++ integer, parameter :: sh(2) = [2, 1]
++ integer, parameter :: &
++ & a(2,2) = reshape([1, 2, 3, 4], sh) ! { dg-error "Different shape" }
++ if (a(1,1) /= 0) call abort
++end subroutine p1
Index: gcc/testsuite/gfortran.dg/entry_21.f90
===================================================================
--- a/src/gcc/testsuite/gfortran.dg/entry_21.f90 (.../tags/gcc_5_1_0_release)
@@ -10097,6 +11594,26 @@ Index: gcc/testsuite/gfortran.dg/pr64925.f90
+ j = j + 1
+ end subroutine ddd
+end subroutine foo
+Index: gcc/testsuite/gfortran.dg/class_is_1.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/class_is_1.f90 (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/class_is_1.f90 (.../branches/gcc-5-branch)
+@@ -0,0 +1,15 @@
++! { dg-do compile }
++! PR fortran/66245
++! Original testcase by Gerhard Steinmetz
++! <gerhard dot steinmetz dot fortran at t-online dot de>
++program p
++ type t; end type
++ class(t), allocatable :: x
++ call s
++ contains
++ subroutine s
++ select type ( x )
++ class is ( ) ! { dg-error "error in CLASS IS" }
++ end select
++ end subroutine s
++end program p
Index: gcc/testsuite/gfortran.dg/interface_operator_1.f90
===================================================================
--- a/src/gcc/testsuite/gfortran.dg/interface_operator_1.f90 (.../tags/gcc_5_1_0_release)
@@ -10305,6 +11822,90 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr65875.c
+ h--;
+ }
+}
+Index: gcc/testsuite/gcc.dg/pr66444.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr66444.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr66444.c (.../branches/gcc-5-branch)
+@@ -0,0 +1,79 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -fipa-ra" } */
++
++extern void abort (void);
++
++#if (__SIZEOF_LONG_LONG__ == __SIZEOF_POINTER__)
++#define ADD_SUFFIX(a) a ## ULL
++#elif (__SIZEOF_LONG__ == __SIZEOF_POINTER__)
++#define ADD_SUFFIX(a) a ## UL
++#elif (__SIZEOF_INT__ == __SIZEOF_POINTER__)
++#define ADD_SUFFIX(a) a ## U
++#else
++#error Add target support here
++#endif
++
++#if __SIZEOF_POINTER__ <= 4
++/* Use a 16 bit pointer to have a valid pointer for 16-bit to 31-bit pointer
++ architectures. Using sizeof, we cannot distinguish between 31-bit and 32-bit
++ pointer types, so we also handle the 32-bit pointer type case here. */
++#define CONST_PTR ADD_SUFFIX (0x800)
++#else
++/* For x86_64 -m64, the problem reproduces with this 32-bit CONST_PTR, but not
++ with a 2-power below it. */
++#define CONST_PTR ADD_SUFFIX (0x80000000)
++#endif
++
++int __attribute__((noinline, noclone))
++bar (void)
++{
++ return 1;
++}
++
++struct S
++{
++ unsigned long p, q, r;
++ void *v;
++};
++
++struct S *s1;
++struct S *s2;
++
++void __attribute__((noinline, noclone))
++fn2 (struct S *x)
++{
++ s2 = x;
++}
++
++__attribute__((noinline, noclone)) void *
++fn1 (struct S *x)
++{
++ /* Just a statement to make it a non-const function. */
++ s1 = x;
++
++ return (void *)0;
++}
++
++int __attribute__((noinline, noclone))
++baz (void)
++{
++ struct S *x = (struct S *) CONST_PTR;
++
++ x += bar ();
++
++ fn1 (x);
++ fn2 (x);
++
++ return 0;
++}
++
++int
++main (void)
++{
++ baz ();
++
++ if (s2 != (((struct S *) CONST_PTR) + 1))
++ abort ();
++
++ return 0;
++}
Index: gcc/testsuite/gcc.dg/pr65408.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/pr65408.c (.../tags/gcc_5_1_0_release)
@@ -10446,6 +12047,34 @@ Index: gcc/testsuite/gcc.dg/lto/pr66221_1.c
+{
+ return (int)(*p);
+}
+Index: gcc/testsuite/gcc.dg/torture/pr66272.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr66272.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr66272.c (.../branches/gcc-5-branch)
+@@ -0,0 +1,23 @@
++/* { dg-do run } */
++
++struct S
++{
++ int f0;
++ int f1;
++};
++
++int b;
++
++int main ()
++{
++ struct S a[2] = { 0 };
++ struct S d = { 0, 1 };
++ for (b = 0; b < 2; b++)
++ {
++ a[b] = d;
++ d = a[0];
++ }
++ if (d.f1 != 1)
++ __builtin_abort ();
++ return 0;
++}
Index: gcc/testsuite/gcc.dg/torture/pr66345.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/torture/pr66345.c (.../tags/gcc_5_1_0_release)
@@ -10501,6 +12130,43 @@ Index: gcc/testsuite/gcc.dg/torture/pr66101.c
+L:
+ ;
+}
+Index: gcc/testsuite/gcc.dg/torture/pr66123.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr66123.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr66123.c (.../branches/gcc-5-branch)
+@@ -0,0 +1,11 @@
++/* { dg-do compile } */
++
++int
++test (int foo)
++{
++ static void *dummy[] = { &&a, &&b };
++ goto *((char *) &&b - 2 * (foo < 0));
++a:
++b:
++ return 0;
++}
+Index: gcc/testsuite/gcc.dg/tree-ssa/forwprop-18.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/tree-ssa/forwprop-18.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/forwprop-18.c (.../branches/gcc-5-branch)
+@@ -1,5 +1,5 @@
+ /* { dg-do compile } */
+-/* { dg-options "-O -fdump-tree-forwprop1" } */
++/* { dg-options "-O -fdump-tree-cddce1" } */
+
+ signed char f1(signed char n)
+ {
+@@ -19,6 +19,6 @@
+ return (float)n;
+ }
+
+-/* { dg-final { scan-tree-dump-times "\\\(float\\\)" 2 "forwprop1" } } */
+-/* { dg-final { scan-tree-dump-not "\\\(long double\\\)" "forwprop1" } } */
+-/* { dg-final { cleanup-tree-dump "forwprop1" } } */
++/* { dg-final { scan-tree-dump-times "\\\(float\\\)" 2 "cddce1" } } */
++/* { dg-final { scan-tree-dump-not "\\\(long double\\\)" "cddce1" } } */
++/* { dg-final { cleanup-tree-dump "cddce1" } } */
Index: gcc/testsuite/gcc.dg/vect/vect-105.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/vect/vect-105.c (.../tags/gcc_5_1_0_release)
@@ -11463,7 +13129,85 @@ Index: gcc/testsuite/ChangeLog
===================================================================
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_5_1_0_release)
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-5-branch)
-@@ -1,3 +1,423 @@
+@@ -1,3 +1,501 @@
++2015-06-08 Uros Bizjak <ubizjak@gmail.com>
++
++ Backport from mainline:
++ 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
++
++ PR target/66275
++ * gcc.target/i386/pr66275.c: New test.
++
++2015-06-08 Tom de Vries <tom@codesourcery.com>
++
++ backport from mainline:
++ 2015-06-08 Tom de Vries <tom@codesourcery.com>
++
++ PR rtl-optimization/66444
++ * gcc.dg/pr66444.c: New test.
++
++2015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
++
++ PR fortran/66245
++ * gfortran.dg/class_is_1.f90: New test.
++ * gfortran.dg/type_is_1.f90: Ditto.
++
++2015-06-05 Steven G. Kargl <kargl@gcc.gnu.org>
++
++ PR fortran/66347
++ * gfortran.dg/blockdata_9.f: New test.
++
++2015-06-05 Steven G. Kargl <kargl@gcc.gnu.org>
++
++ PR fortran/66377
++ gfortran.dg/equiv_9.f90: New test.
++
++
++2015-06-04 Marek Polacek <polacek@redhat.com>
++
++ Backported from mainline
++ 2015-06-03 Marek Polacek <polacek@redhat.com>
++
++ PR sanitizer/66190
++ * g++.dg/ubsan/static-init-1.C: New test.
++ * g++.dg/ubsan/static-init-2.C: New test.
++ * g++.dg/ubsan/static-init-3.C: New test.
++
++2015-06-03 Richard Biener <rguenther@suse.de>
++
++ Backport from mainline
++ 2015-06-02 Richard Biener <rguenther@suse.de>
++
++ PR debug/65549
++ * g++.dg/lto/pr65549_0.C: New testcase.
++
++ 2015-06-01 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/66280
++ * g++.dg/torture/pr66280.C: New testcase.
++ * g++.dg/torture/pr66280-2.C: Likewise.
++
++ 2015-05-27 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/66272
++ * gcc.dg/torture/pr66272.c: New testcase.
++
++ 2015-05-21 Richard Biener <rguenther@suse.de>
++
++ PR c++/66211
++ * g++.dg/conversion/pr66211.C: New testcase.
++ * gcc.dg/tree-ssa/forwprop-18.c: Adjust.
++
++ 2015-05-13 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/66123
++ * gcc.dg/torture/pr66123.c: New testcase.
++
++2015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
++
++ PR fortran/66380
++ * gfortran.dg/reshape_7.f90: New test.
++
+2015-06-02 Renlin Li <renlin.li@arm.com>
+
+ Backport from mainline
@@ -11899,6 +13643,78 @@ Index: gcc/testsuite/gfortran.fortran-torture/compile/pr66251.f90
+ CALL foo()
+END SUBROUTINE dbcsr_data_convert
+
+Index: gcc/testsuite/g++.dg/ubsan/static-init-1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ubsan/static-init-1.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/ubsan/static-init-1.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,21 @@
++// PR sanitizer/66190
++// { dg-do compile }
++// { dg-options "-fsanitize=null -std=c++11" }
++
++class A {
++public:
++ void fn1 (int);
++};
++
++class G {
++ ~G ();
++ A t;
++ virtual void fn2 () {
++ static int a;
++ static int &b = a;
++ static int &c (a);
++ static int &d {a};
++ t.fn1 (b);
++ }
++};
++G ::~G () {}
+Index: gcc/testsuite/g++.dg/ubsan/static-init-2.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ubsan/static-init-2.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/ubsan/static-init-2.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,17 @@
++// PR sanitizer/66190
++// { dg-do run }
++// { dg-options "-fsanitize=null -std=c++11" }
++
++int
++main ()
++{
++ static int *a;
++ static int &b = *a;
++ static int &c (*a);
++ static int &d {*a};
++ return 0;
++}
++
++// { dg-output "reference binding to null pointer of type 'int'(\n|\r\n|\r)" }
++// { dg-output "\[^\n\r]*reference binding to null pointer of type 'int'(\n|\r\n|\r)" }
++// { dg-output "\[^\n\r]*reference binding to null pointer of type 'int'" }
+Index: gcc/testsuite/g++.dg/ubsan/static-init-3.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ubsan/static-init-3.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/ubsan/static-init-3.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,19 @@
++// PR sanitizer/66190
++// { dg-do run }
++// { dg-options "-fsanitize=null -std=c++11" }
++
++int *fn (void) { return 0; }
++
++int
++main ()
++{
++ static int a;
++ static int &b = *fn ();
++ static int &c (*fn ());
++ static int &d {*fn ()};
++ return 0;
++}
++
++// { dg-output "reference binding to null pointer of type 'int'(\n|\r\n|\r)" }
++// { dg-output "\[^\n\r]*reference binding to null pointer of type 'int'(\n|\r\n|\r)" }
++// { dg-output "\[^\n\r]*reference binding to null pointer of type 'int'" }
Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype2.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype2.C (.../tags/gcc_5_1_0_release)
@@ -11991,6 +13807,18 @@ Index: gcc/testsuite/g++.dg/cpp0x/Wnarrowing3.C
+// { dg-options "-flto -Wno-narrowing" }
+
+int x { 0.5 };
+Index: gcc/testsuite/g++.dg/cpp0x/constexpr-decltype2.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-decltype2.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/constexpr-decltype2.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,7 @@
++// PR c++/65942
++// { dg-do compile { target c++11 } }
++
++template <typename T> constexpr int f(T t) { return t; }
++template <typename T, typename = decltype(f(T()))> void g(T) { }
++void g(...) { }
++int main() { g(""); }
Index: gcc/testsuite/g++.dg/cpp0x/alignas4.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp0x/alignas4.C (.../tags/gcc_5_1_0_release)
@@ -12046,6 +13874,24 @@ Index: gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem4.C
+};
+
+constexpr Bar Foo::bar;
+Index: gcc/testsuite/g++.dg/cpp0x/variadic-alias1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-alias1.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic-alias1.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,13 @@
++// PR c++/66405
++// { dg-do compile { target c++11 } }
++
++template <typename T, T...> struct B;
++template <bool... Bools> using and_c = B<bool, +Bools...>;
++template <typename T, typename U> using Constructible = int;
++template <typename... Ts> struct common_tuple {
++ template <typename... Us,
++ typename = and_c<Constructible<Ts, Us>{}...> >
++ common_tuple();
++ void foo();
++};
++template <> void common_tuple<>::foo(){}
Index: gcc/testsuite/g++.dg/cpp0x/Wnarrowing2.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp0x/Wnarrowing2.C (.../tags/gcc_5_1_0_release)
@@ -12123,6 +13969,66 @@ Index: gcc/testsuite/g++.dg/cpp0x/initlist95.C
+
+struct B {};
+struct D : B {D(B b) : B{b} {}};
+Index: gcc/testsuite/g++.dg/torture/pr66280.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/torture/pr66280.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/torture/pr66280.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,25 @@
++// { dg-do compile }
++
++typedef struct
++{
++ short re;
++ short im;
++} cint16_T;
++typedef struct
++{
++ int re;
++ int im;
++} cint32_T;
++int a;
++short b;
++cint16_T *c;
++cint32_T *d, *e;
++void
++fn1 ()
++{
++ for (; a; a++)
++ {
++ d[a].re = d[a].im = e[a].re = c[a].re * b;
++ e[a].im = c[a].im * b;
++ }
++}
+Index: gcc/testsuite/g++.dg/torture/pr66280-2.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/torture/pr66280-2.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/torture/pr66280-2.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,25 @@
++// { dg-do compile }
++
++typedef struct
++{
++ short re;
++ short im;
++} cint16_T;
++typedef struct
++{
++ int re;
++ int im;
++} cint32_T;
++int a;
++short b;
++cint16_T *c;
++cint32_T *d, *e;
++void
++fn1 ()
++{
++ for (; a; a++)
++ {
++ d[a].re = d[a].im = e[a].im = c[a].im * b;
++ e[a].re = c[a].re * b;
++ }
++}
Index: gcc/testsuite/g++.dg/ipa/pr65557.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/ipa/pr65557.C (.../tags/gcc_5_1_0_release)
@@ -12283,6 +14189,22 @@ Index: gcc/testsuite/g++.dg/gomp/tpl-target-update.C
+{
+ f(1, 5);
+}
+Index: gcc/testsuite/g++.dg/conversion/pr66211.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/conversion/pr66211.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/conversion/pr66211.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,11 @@
++// PR c++/66211
++// { dg-do compile }
++
++void f(int&){}
++
++int main()
++{
++ int x = 0;
++ double y = 1;
++ f(1 > 0 ? x : y); // { dg-error "from an rvalue" }
++}
Index: gcc/testsuite/g++.dg/lto/pr65276_1.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/lto/pr65276_1.C (.../tags/gcc_5_1_0_release)
@@ -12305,6 +14227,155 @@ Index: gcc/testsuite/g++.dg/lto/pr65276_1.C
{
struct __cow_string
{
+Index: gcc/testsuite/g++.dg/lto/pr65549_0.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/lto/pr65549_0.C (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/lto/pr65549_0.C (.../branches/gcc-5-branch)
+@@ -0,0 +1,144 @@
++// { dg-lto-do link }
++// { dg-lto-options { { -std=gnu++14 -flto -g } { -std=gnu++14 -flto -g -O2 -fno-inline -flto-partition=max } } }
++// { dg-extra-ld-options "-r -nostdlib" }
++
++namespace std {
++inline namespace __cxx11 {}
++template <typename _Tp, _Tp> struct integral_constant {
++ static constexpr _Tp value = 0;
++};
++template <typename> struct __and_;
++struct is_member_object_pointer : integral_constant<bool, false> {};
++template <typename>
++struct is_member_function_pointer : integral_constant<bool, false> {};
++template <typename> struct remove_reference { typedef int type; };
++template <typename> class C;
++template <bool, int, typename...> struct __result_of_impl;
++template <typename _Functor, typename... _ArgTypes>
++struct __result_of_impl<false, 0, _Functor, _ArgTypes...> {
++ typedef decltype(0) type;
++};
++template <typename _Functor, typename... _ArgTypes>
++struct C<_Functor(_ArgTypes...)>
++ : __result_of_impl<is_member_object_pointer::value,
++ is_member_function_pointer<
++ typename remove_reference<_Functor>::type>::value,
++ _Functor> {};
++template <typename _Tp> using result_of_t = typename C<_Tp>::type;
++template <typename> void forward();
++template <typename _Tp> _Tp move(_Tp) {}
++namespace __cxx11 {
++class basic_string typedef string;
++}
++template <typename> struct allocator_traits { typedef decltype(0) pointer; };
++}
++struct F : std::allocator_traits<int> {};
++namespace std {
++namespace __cxx11 {
++class basic_string {
++public:
++ struct _Alloc_hider : F {
++ _Alloc_hider(pointer);
++ } _M_dataplus;
++ basic_string(int) : _M_dataplus(0) {}
++ ~basic_string();
++};
++}
++template <typename> class function;
++template <typename _Functor> class _Base_manager {
++protected:
++ static _Functor *_M_get_pointer(int) {}
++};
++template <typename, typename> class _Function_handler;
++template <typename _Res, typename _Functor, typename... _ArgTypes>
++class _Function_handler<_Res(_ArgTypes...), _Functor>
++ : _Base_manager<_Functor> {
++public:
++ static _Res _M_invoke(const int &) {
++ (*_Base_manager<_Functor>::_M_get_pointer(0))();
++ }
++};
++template <typename, typename> using __check_func_return_type = int;
++template <typename _Res, typename... _ArgTypes>
++class function<_Res(_ArgTypes...)> {
++ template <typename> using _Invoke = decltype(0);
++ template <typename _Functor>
++ using _Callable = __and_<__check_func_return_type<_Invoke<_Functor>, _Res>>;
++ template <typename, typename> using _Requires = int;
++
++public:
++ template <typename _Functor, typename = _Requires<_Callable<_Functor>, void>>
++ function(_Functor);
++ using _Invoker_type = _Res (*)(const int &);
++ _Invoker_type _M_invoker;
++};
++template <typename _Res, typename... _ArgTypes>
++template <typename _Functor, typename>
++function<_Res(_ArgTypes...)>::function(_Functor) {
++ _M_invoker = _Function_handler<_Res(), _Functor>::_M_invoke;
++}
++class unique_ptr {
++public:
++ ~unique_ptr();
++};
++template <typename _Tp, typename... _Args> _Tp make_unique(_Args... __args) {
++ _Tp(__args...);
++}
++}
++class A {
++public:
++ template <class T> T as();
++};
++class variables_map {
++public:
++ A operator[](std::basic_string);
++};
++class B {
++public:
++ variables_map configuration();
++ void run(int, int, std::function<void()>);
++};
++class H;
++struct G {
++ enum {} _state;
++};
++class D {
++ G _local_state;
++ std::unique_ptr _task;
++ template <typename Func> void schedule(Func func) {
++ struct task_with_state {
++ task_with_state(Func func) : _func(func) {}
++ Func _func;
++ } tws = std::make_unique<task_with_state>(std::move(func));
++ }
++ friend H;
++};
++template <typename> using futurize_t = H;
++class H {
++ D *_promise;
++ template <typename Func> void schedule(Func func) {
++ G __trans_tmp_1;
++ struct task_with_ready_state {
++ task_with_ready_state(Func, G);
++ };
++ std::make_unique<task_with_ready_state>(std::move(func), __trans_tmp_1);
++ _promise->schedule(std::move(func));
++ }
++ template <typename Func, typename Param> void then(Func func, Param) {
++ using P = D;
++ P pr;
++ schedule([ pr = std::move(pr), func, param = std::forward<Param> ]{});
++ }
++
++public:
++ template <typename Func> futurize_t<std::result_of_t<Func()>> then(Func) {
++ then(0, [] {});
++ }
++} clients;
++main() {
++ B app;
++ app.run(0, 0, [&] {
++ auto config = app.configuration()[0].as<std::string>();
++ clients.then([] {});
++ });
++}
Index: gcc/testsuite/g++.dg/lto/pr65276_0.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/lto/pr65276_0.C (.../tags/gcc_5_1_0_release)
@@ -12398,7 +14469,23 @@ Index: gcc/cp/constexpr.c
===================================================================
--- a/src/gcc/cp/constexpr.c (.../tags/gcc_5_1_0_release)
+++ b/src/gcc/cp/constexpr.c (.../branches/gcc-5-branch)
-@@ -1355,7 +1355,14 @@
+@@ -1245,6 +1245,15 @@
+ return build_zero_init (DECL_CONTEXT (fun), NULL_TREE, false);
+ }
+
++ /* We can't defer instantiating the function any longer. */
++ if (!DECL_INITIAL (fun)
++ && DECL_TEMPLOID_INSTANTIATION (fun))
++ {
++ ++function_depth;
++ instantiate_decl (fun, /*defer_ok*/false, /*expl_inst*/false);
++ --function_depth;
++ }
++
+ /* If in direct recursive call, optimize definition search. */
+ if (ctx && ctx->call && ctx->call->fundef->decl == fun)
+ new_call.fundef = ctx->call->fundef;
+@@ -1355,7 +1364,14 @@
fun = DECL_CHAIN (fun))
if (DECL_SAVED_TREE (fun))
break;
@@ -12414,7 +14501,7 @@ Index: gcc/cp/constexpr.c
tree parms, res;
/* Unshare the whole function body. */
-@@ -2603,8 +2610,11 @@
+@@ -2603,8 +2619,11 @@
{
constexpr_ctx new_ctx = *ctx;
@@ -12426,7 +14513,7 @@ Index: gcc/cp/constexpr.c
target = cxx_eval_constant_expression (ctx, target,
true,
non_constant_p, overflow_p);
-@@ -2611,6 +2621,18 @@
+@@ -2611,6 +2630,18 @@
if (*non_constant_p)
return t;
@@ -12445,7 +14532,7 @@ Index: gcc/cp/constexpr.c
/* And then find the underlying variable. */
vec<tree,va_gc> *refs = make_tree_vector();
tree object = NULL_TREE;
-@@ -2647,7 +2669,7 @@
+@@ -2647,7 +2678,7 @@
*non_constant_p = true;
return t;
}
@@ -12454,7 +14541,7 @@ Index: gcc/cp/constexpr.c
while (!refs->is_empty())
{
if (*valp == NULL_TREE)
-@@ -2684,9 +2706,8 @@
+@@ -2684,9 +2715,8 @@
new_ctx.object = target;
}
@@ -12466,7 +14553,7 @@ Index: gcc/cp/constexpr.c
if (target == object)
/* The hash table might have moved since the get earlier. */
ctx->values->put (object, init);
-@@ -3484,7 +3505,9 @@
+@@ -3484,7 +3514,9 @@
break;
case PLACEHOLDER_EXPR:
@@ -12477,7 +14564,7 @@ Index: gcc/cp/constexpr.c
{
/* A placeholder without a referent. We can get here when
checking whether NSDMIs are noexcept, or in massage_init_elt;
-@@ -3499,8 +3522,6 @@
+@@ -3499,8 +3531,6 @@
use ctx->object unconditionally, but using ctx->ctor when we
can is a minor optimization. */
tree ctor = lval ? ctx->object : ctx->ctor;
@@ -12530,7 +14617,34 @@ Index: gcc/cp/ChangeLog
===================================================================
--- a/src/gcc/cp/ChangeLog (.../tags/gcc_5_1_0_release)
+++ b/src/gcc/cp/ChangeLog (.../branches/gcc-5-branch)
-@@ -1,3 +1,111 @@
+@@ -1,3 +1,138 @@
++2015-06-05 Jason Merrill <jason@redhat.com>
++
++ PR c++/66405
++ * pt.c (argument_pack_element_is_expansion_p): Return 2 if
++ the expansion has extra args.
++ (use_pack_expansion_extra_args_p): Return true in that case.
++
++ PR c++/66405
++ * pt.c (type_dependent_expression_p): EXPR_PACK_EXPANSION is
++ dependent even if it has a type.
++
++2015-06-05 Jason Merrill <jason@redhat.com>
++
++ PR c++/65942
++ * decl2.c (mark_used): Don't always instantiate constexpr fns.
++ * constexpr.c (cxx_eval_call_expression): Instantiate them here.
++
++2015-06-04 Marek Polacek <polacek@redhat.com>
++
++ Backported from mainline
++ 2015-06-03 Marek Polacek <polacek@redhat.com>
++
++ PR sanitizer/66190
++ * cp-gimplify.c (struct cp_genericize_data): Add no_sanitize_p.
++ (cp_genericize_r): Don't instrument static initializers.
++ (cp_genericize_tree): Initialize wtd.no_sanitize_p.
++
+2015-05-31 Jason Merrill <jason@redhat.com>
+
+ PR c++/66320
@@ -12642,6 +14756,62 @@ Index: gcc/cp/ChangeLog
2015-04-22 Release Manager
* GCC 5.1.0 released.
+Index: gcc/cp/cp-gimplify.c
+===================================================================
+--- a/src/gcc/cp/cp-gimplify.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/cp/cp-gimplify.c (.../branches/gcc-5-branch)
+@@ -905,6 +905,7 @@
+ hash_set<tree> *p_set;
+ vec<tree> bind_expr_stack;
+ struct cp_genericize_omp_taskreg *omp_ctx;
++ bool no_sanitize_p;
+ };
+
+ /* Perform any pre-gimplification lowering of C++ front end trees to
+@@ -1104,6 +1105,21 @@
+ : OMP_CLAUSE_DEFAULT_PRIVATE);
+ }
+ }
++ if (flag_sanitize
++ & (SANITIZE_NULL | SANITIZE_ALIGNMENT | SANITIZE_VPTR))
++ {
++ /* The point here is to not sanitize static initializers. */
++ bool no_sanitize_p = wtd->no_sanitize_p;
++ wtd->no_sanitize_p = true;
++ for (tree decl = BIND_EXPR_VARS (stmt);
++ decl;
++ decl = DECL_CHAIN (decl))
++ if (VAR_P (decl)
++ && TREE_STATIC (decl)
++ && DECL_INITIAL (decl))
++ cp_walk_tree (&DECL_INITIAL (decl), cp_genericize_r, data, NULL);
++ wtd->no_sanitize_p = no_sanitize_p;
++ }
+ wtd->bind_expr_stack.safe_push (stmt);
+ cp_walk_tree (&BIND_EXPR_BODY (stmt),
+ cp_genericize_r, data, NULL);
+@@ -1226,9 +1242,10 @@
+ if (*stmt_p == error_mark_node)
+ *stmt_p = size_one_node;
+ return NULL;
+- }
+- else if (flag_sanitize
+- & (SANITIZE_NULL | SANITIZE_ALIGNMENT | SANITIZE_VPTR))
++ }
++ else if ((flag_sanitize
++ & (SANITIZE_NULL | SANITIZE_ALIGNMENT | SANITIZE_VPTR))
++ && !wtd->no_sanitize_p)
+ {
+ if ((flag_sanitize & (SANITIZE_NULL | SANITIZE_ALIGNMENT))
+ && TREE_CODE (stmt) == NOP_EXPR
+@@ -1269,6 +1286,7 @@
+ wtd.p_set = new hash_set<tree>;
+ wtd.bind_expr_stack.create (0);
+ wtd.omp_ctx = NULL;
++ wtd.no_sanitize_p = false;
+ cp_walk_tree (t_p, cp_genericize_r, &wtd, NULL);
+ delete wtd.p_set;
+ wtd.bind_expr_stack.release ();
Index: gcc/cp/typeck2.c
===================================================================
--- a/src/gcc/cp/typeck2.c (.../tags/gcc_5_1_0_release)
@@ -12739,7 +14909,49 @@ Index: gcc/cp/pt.c
else
TREE_VALUE (t)
= tsubst_expr (TREE_VALUE (t), args, complain, in_decl,
-@@ -11302,6 +11323,11 @@
+@@ -9760,16 +9781,22 @@
+ return extract_fnparm_pack (NULL_TREE, &spec_parm);
+ }
+
+-/* Return true iff the Ith element of the argument pack ARG_PACK is a
+- pack expansion. */
++/* Return 1 if the Ith element of the argument pack ARG_PACK is a
++ pack expansion with no extra args, 2 if it has extra args, or 0
++ if it is not a pack expansion. */
+
+-static bool
++static int
+ argument_pack_element_is_expansion_p (tree arg_pack, int i)
+ {
+ tree vec = ARGUMENT_PACK_ARGS (arg_pack);
+ if (i >= TREE_VEC_LENGTH (vec))
+- return false;
+- return PACK_EXPANSION_P (TREE_VEC_ELT (vec, i));
++ return 0;
++ tree elt = TREE_VEC_ELT (vec, i);
++ if (!PACK_EXPANSION_P (elt))
++ return 0;
++ if (PACK_EXPANSION_EXTRA_ARGS (elt))
++ return 2;
++ return 1;
+ }
+
+
+@@ -9819,7 +9846,12 @@
+ {
+ tree arg = TREE_VALUE (parm_pack);
+
+- if (argument_pack_element_is_expansion_p (arg, i))
++ int exp = argument_pack_element_is_expansion_p (arg, i);
++ if (exp == 2)
++ /* We can't substitute a pack expansion with extra args into
++ our pattern. */
++ return true;
++ else if (exp)
+ has_expansion_arg = true;
+ else
+ has_non_expansion_arg = true;
+@@ -11302,6 +11334,11 @@
tmpl = DECL_TI_TEMPLATE (t);
gen_tmpl = most_general_template (tmpl);
argvec = tsubst (DECL_TI_ARGS (t), args, complain, in_decl);
@@ -12751,7 +14963,7 @@ Index: gcc/cp/pt.c
if (argvec == error_mark_node)
RETURN (error_mark_node);
hash = hash_tmpl_and_args (gen_tmpl, argvec);
-@@ -11425,9 +11451,9 @@
+@@ -11425,9 +11462,9 @@
processing here. */
DECL_EXTERNAL (r) = 1;
@@ -12762,7 +14974,7 @@ Index: gcc/cp/pt.c
}
else if (!cp_unevaluated_operand)
register_local_specialization (r, t);
-@@ -14249,7 +14275,7 @@
+@@ -14249,7 +14286,7 @@
tmp = tsubst_omp_clauses (OMP_TARGET_UPDATE_CLAUSES (t), false,
args, complain, in_decl);
t = copy_node (t);
@@ -12771,6 +14983,28 @@ Index: gcc/cp/pt.c
add_stmt (t);
break;
+@@ -21391,6 +21428,10 @@
+ && variable_template_p (DECL_TI_TEMPLATE (expression)))
+ return any_dependent_template_arguments_p (DECL_TI_ARGS (expression));
+
++ /* Always dependent, on the number of arguments if nothing else. */
++ if (TREE_CODE (expression) == EXPR_PACK_EXPANSION)
++ return true;
++
+ if (TREE_TYPE (expression) == unknown_type_node)
+ {
+ if (TREE_CODE (expression) == ADDR_EXPR)
+@@ -21408,10 +21449,6 @@
+ if (TREE_CODE (expression) == SCOPE_REF)
+ return false;
+
+- /* Always dependent, on the number of arguments if nothing else. */
+- if (TREE_CODE (expression) == EXPR_PACK_EXPANSION)
+- return true;
+-
+ if (BASELINK_P (expression))
+ {
+ if (BASELINK_OPTYPE (expression)
Index: gcc/cp/decl2.c
===================================================================
--- a/src/gcc/cp/decl2.c (.../tags/gcc_5_1_0_release)
@@ -12786,6 +15020,16 @@ Index: gcc/cp/decl2.c
/* If any of the arguments are dependent expressions, we can't evaluate
the attribute until instantiation time. */
for (arg = args; arg; arg = TREE_CHAIN (arg))
+@@ -5015,8 +5019,7 @@
+ && DECL_TEMPLATE_INFO (decl)
+ && (decl_maybe_constant_var_p (decl)
+ || (TREE_CODE (decl) == FUNCTION_DECL
+- && (DECL_DECLARED_CONSTEXPR_P (decl)
+- || DECL_OMP_DECLARE_REDUCTION_P (decl)))
++ && DECL_OMP_DECLARE_REDUCTION_P (decl))
+ || undeduced_auto_decl (decl))
+ && !uses_template_parms (DECL_TI_ARGS (decl)))
+ {
Index: gcc/cp/parser.c
===================================================================
--- a/src/gcc/cp/parser.c (.../tags/gcc_5_1_0_release)
@@ -12921,6 +15165,20 @@ Index: gcc/cp/name-lookup.c
{
error_not_base_type (scope, current_class_type);
return NULL_TREE;
+Index: gcc/tree-ssa-dom.c
+===================================================================
+--- a/src/gcc/tree-ssa-dom.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/tree-ssa-dom.c (.../branches/gcc-5-branch)
+@@ -2963,6 +2963,9 @@
+ {
+ basic_block bb = gimple_bb (use_stmt);
+ edge te = find_taken_edge (bb, val);
++ if (!te)
++ continue;
++
+ edge_iterator ei;
+ edge e;
+ gimple_stmt_iterator gsi;
Index: gcc/lto-wrapper.c
===================================================================
--- a/src/gcc/lto-wrapper.c (.../tags/gcc_5_1_0_release)
@@ -13059,6 +15317,65 @@ Index: gcc/ipa-inline.c
{
if (estimate_edge_time (e)
>= 20 + inline_edge_summary (e)->call_stmt_time)
+Index: gcc/dwarf2out.c
+===================================================================
+--- a/src/gcc/dwarf2out.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/dwarf2out.c (.../branches/gcc-5-branch)
+@@ -20619,6 +20619,28 @@
+ != TYPE_NAME (TREE_TYPE (decl))));
+ }
+
++/* Looks up the DIE for a context. */
++
++static inline dw_die_ref
++lookup_context_die (tree context)
++{
++ if (context)
++ {
++ /* Find die that represents this context. */
++ if (TYPE_P (context))
++ {
++ context = TYPE_MAIN_VARIANT (context);
++ dw_die_ref ctx = lookup_type_die (context);
++ if (!ctx)
++ return NULL;
++ return strip_naming_typedef (context, ctx);
++ }
++ else
++ return lookup_decl_die (context);
++ }
++ return comp_unit_die ();
++}
++
+ /* Returns the DIE for a context. */
+
+ static inline dw_die_ref
+@@ -23948,12 +23970,22 @@
+ {
+ tree tdecl = SYMBOL_REF_DECL (a->dw_attr_val.v.val_addr);
+ dw_die_ref tdie = lookup_decl_die (tdecl);
++ dw_die_ref cdie;
+ if (tdie == NULL
+ && DECL_EXTERNAL (tdecl)
+- && DECL_ABSTRACT_ORIGIN (tdecl) == NULL_TREE)
++ && DECL_ABSTRACT_ORIGIN (tdecl) == NULL_TREE
++ && (cdie = lookup_context_die (DECL_CONTEXT (tdecl))))
+ {
+- force_decl_die (tdecl);
+- tdie = lookup_decl_die (tdecl);
++ /* Creating a full DIE for tdecl is overly expensive and
++ at this point even wrong when in the LTO phase
++ as it can end up generating new type DIEs we didn't
++ output and thus optimize_external_refs will crash. */
++ tdie = new_die (DW_TAG_subprogram, cdie, NULL_TREE);
++ add_AT_flag (tdie, DW_AT_external, 1);
++ add_AT_flag (tdie, DW_AT_declaration, 1);
++ add_linkage_attr (tdie, tdecl);
++ add_name_and_src_coords_attributes (tdie, tdecl);
++ equate_decl_number_to_die (tdecl, tdie);
+ }
+ if (tdie)
+ {
Index: gcc/match.pd
===================================================================
--- a/src/gcc/match.pd (.../tags/gcc_5_1_0_release)
@@ -13085,6 +15402,16 @@ Index: gcc/match.pd
(ocvt @0))
/* If we have a sign-extension of a zero-extended value, we can
+@@ -763,7 +759,8 @@
+ /* If we are converting an integer to a floating-point that can
+ represent it exactly and back to an integer, we can skip the
+ floating-point conversion. */
+- (if (inside_int && inter_float && final_int &&
++ (if (GIMPLE /* PR66211 */
++ && inside_int && inter_float && final_int &&
+ (unsigned) significand_size (TYPE_MODE (inter_type))
+ >= inside_prec - !inside_unsignedp)
+ (convert @0))))))
Index: gcc/go/gofrontend/expressions.cc
===================================================================
--- a/src/gcc/go/gofrontend/expressions.cc (.../tags/gcc_5_1_0_release)
@@ -13111,7 +15438,13 @@ Index: gcc/ada/ChangeLog
===================================================================
--- a/src/gcc/ada/ChangeLog (.../tags/gcc_5_1_0_release)
+++ b/src/gcc/ada/ChangeLog (.../branches/gcc-5-branch)
-@@ -1,3 +1,7 @@
+@@ -1,3 +1,13 @@
++2015-06-04 Pierre-Marie de Rodat <derodat@adacore.com>
++
++ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: If
++ processing a definition, create definitions for padding types
++ around return types.
++
+2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/Makefile.in: Fix ARM/Darwin configuration.
@@ -13145,6 +15478,20 @@ Index: gcc/ada/gcc-interface/Makefile.in
LIBGNAT_TARGET_PAIRS += \
system.ads<system-darwin-arm.ads
+Index: gcc/ada/gcc-interface/decl.c
+===================================================================
+--- a/src/gcc/ada/gcc-interface/decl.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/ada/gcc-interface/decl.c (.../branches/gcc-5-branch)
+@@ -4316,7 +4316,8 @@
+ = maybe_pad_type (gnu_return_type,
+ max_size (TYPE_SIZE (gnu_return_type),
+ true),
+- 0, gnat_entity, false, false, false, true);
++ 0, gnat_entity, false, false, definition,
++ true);
+
+ /* Declare it now since it will never be declared otherwise.
+ This is necessary to ensure that its subtrees are properly
Index: gcc/common/config/aarch64/aarch64-common.c
===================================================================
--- a/src/gcc/common/config/aarch64/aarch64-common.c (.../tags/gcc_5_1_0_release)
@@ -13334,7 +15681,36 @@ Index: gcc/fortran/ChangeLog
===================================================================
--- a/src/gcc/fortran/ChangeLog (.../tags/gcc_5_1_0_release)
+++ b/src/gcc/fortran/ChangeLog (.../branches/gcc-5-branch)
-@@ -1,7 +1,94 @@
+@@ -1,7 +1,123 @@
++2015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
++
++ PR fortran/66245
++ * match.c (gfc_match_type_is, gfc_match_class_is): Check if the
++ return type spec or derived type spec is validate.
++
++2015-06-05 Steven G. Kargl <kargl@gcc.gnu.org>
++
++ PR fortran/66347
++ * resolve.c (apply_default_init_local): Do not dereference a NULL
++ pointer.
++
++2015-06-05 Russell Whitesides <russelldub@gmail.com>
++ Steven G. Kargl <kargl@gcc.gnu.org>
++
++ PR fortran/40958
++ PR fortran/60780
++ PR fortran/66377
++ * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs
++ from different modules. Eliminate the pruning of unused
++ equivalence-objects
++
++
++2015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
++
++ PR fortran/66380
++ * simplify.c (gfc_simplify_reshape): Convert assert into returning
++ NULL, which triggers an error condition.
++
+2015-05-29 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/66257
@@ -13461,6 +15837,52 @@ Index: gcc/fortran/expr.c
bad_proc = true;
/* ... or is not an entry and has a different name. */
+Index: gcc/fortran/module.c
+===================================================================
+--- a/src/gcc/fortran/module.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/fortran/module.c (.../branches/gcc-5-branch)
+@@ -4479,8 +4479,8 @@
+ static void
+ load_equiv (void)
+ {
+- gfc_equiv *head, *tail, *end, *eq;
+- bool unused;
++ gfc_equiv *head, *tail, *end, *eq, *equiv;
++ bool duplicate;
+
+ mio_lparen ();
+ in_load_equiv = true;
+@@ -4507,23 +4507,19 @@
+ mio_expr (&tail->expr);
+ }
+
+- /* Unused equivalence members have a unique name. In addition, it
+- must be checked that the symbols are from the same module. */
+- unused = true;
+- for (eq = head; eq; eq = eq->eq)
++ /* Check for duplicate equivalences being loaded from different modules */
++ duplicate = false;
++ for (equiv = gfc_current_ns->equiv; equiv; equiv = equiv->next)
+ {
+- if (eq->expr->symtree->n.sym->module
+- && head->expr->symtree->n.sym->module
+- && strcmp (head->expr->symtree->n.sym->module,
+- eq->expr->symtree->n.sym->module) == 0
+- && !check_unique_name (eq->expr->symtree->name))
++ if (equiv->module && head->module
++ && strcmp (equiv->module, head->module) == 0)
+ {
+- unused = false;
++ duplicate = true;
+ break;
+ }
+ }
+
+- if (unused)
++ if (duplicate)
+ {
+ for (eq = head; eq; eq = head)
+ {
Index: gcc/fortran/scanner.c
===================================================================
--- a/src/gcc/fortran/scanner.c (.../tags/gcc_5_1_0_release)
@@ -13537,6 +15959,15 @@ Index: gcc/fortran/resolve.c
{
gfc_error ("ELEMENTAL procedure pointer component %qs is not "
"allowed as an actual argument at %L", comp->name,
+@@ -10948,7 +10949,7 @@
+ result variable, which are also nonstatic. */
+ if (sym->attr.save || sym->ns->save_all
+ || (flag_max_stack_var_size == 0 && !sym->attr.result
+- && !sym->ns->proc_name->attr.recursive
++ && (sym->ns->proc_name && !sym->ns->proc_name->attr.recursive)
+ && (!sym->attr.dimension || !is_non_constant_shape_array (sym))))
+ {
+ /* Don't clobber an existing initializer! */
Index: gcc/fortran/match.c
===================================================================
--- a/src/gcc/fortran/match.c (.../tags/gcc_5_1_0_release)
@@ -13551,6 +15982,30 @@ Index: gcc/fortran/match.c
default:
break;
}
+@@ -5457,7 +5460,10 @@
+ c = gfc_get_case ();
+ c->where = gfc_current_locus;
+
+- if (gfc_match_type_spec (&c->ts) == MATCH_ERROR)
++ m = gfc_match_type_spec (&c->ts);
++ if (m == MATCH_NO)
++ goto syntax;
++ if (m == MATCH_ERROR)
+ goto cleanup;
+
+ if (gfc_match_char (')') != MATCH_YES)
+@@ -5537,7 +5543,10 @@
+ c = gfc_get_case ();
+ c->where = gfc_current_locus;
+
+- if (match_derived_type_spec (&c->ts) == MATCH_ERROR)
++ m = match_derived_type_spec (&c->ts);
++ if (m == MATCH_NO)
++ goto syntax;
++ if (m == MATCH_ERROR)
+ goto cleanup;
+
+ if (c->ts.type == BT_DERIVED)
Index: gcc/fortran/parse.c
===================================================================
--- a/src/gcc/fortran/parse.c (.../tags/gcc_5_1_0_release)
@@ -13585,6 +16040,24 @@ Index: gcc/fortran/check.c
if (a->ts.type == BT_ASSUMED)
{
gfc_error ("%qs argument of %qs intrinsic at %L shall not be TYPE(*)",
+Index: gcc/fortran/simplify.c
+===================================================================
+--- a/src/gcc/fortran/simplify.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/fortran/simplify.c (.../branches/gcc-5-branch)
+@@ -5174,8 +5174,11 @@
+ e = gfc_constructor_lookup_expr (source->value.constructor, j);
+ else
+ {
+- gcc_assert (npad > 0);
+-
++ if (npad <= 0)
++ {
++ mpz_clear (index);
++ return NULL;
++ }
+ j = j - nsource;
+ j = j % npad;
+ e = gfc_constructor_lookup_expr (pad->value.constructor, j);
Index: gcc/configure.ac
===================================================================
--- a/src/gcc/configure.ac (.../tags/gcc_5_1_0_release)
@@ -13626,6 +16099,61 @@ Index: gcc/BASE-VER
@@ -1 +1 @@
-5.1.0
+5.1.1
+Index: gcc/tree-data-ref.c
+===================================================================
+--- a/src/gcc/tree-data-ref.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/tree-data-ref.c (.../branches/gcc-5-branch)
+@@ -1036,6 +1036,7 @@
+ base, memoff);
+ MR_DEPENDENCE_CLIQUE (ref) = MR_DEPENDENCE_CLIQUE (old);
+ MR_DEPENDENCE_BASE (ref) = MR_DEPENDENCE_BASE (old);
++ DR_UNCONSTRAINED_BASE (dr) = true;
+ access_fns.safe_push (access_fn);
+ }
+ }
+@@ -1453,7 +1454,8 @@
+ offset/overlap based analysis but have to rely on points-to
+ information only. */
+ if (TREE_CODE (addr_a) == MEM_REF
+- && TREE_CODE (TREE_OPERAND (addr_a, 0)) == SSA_NAME)
++ && (DR_UNCONSTRAINED_BASE (a)
++ || TREE_CODE (TREE_OPERAND (addr_a, 0)) == SSA_NAME))
+ {
+ /* For true dependences we can apply TBAA. */
+ if (flag_strict_aliasing
+@@ -1469,7 +1471,8 @@
+ build_fold_addr_expr (addr_b));
+ }
+ else if (TREE_CODE (addr_b) == MEM_REF
+- && TREE_CODE (TREE_OPERAND (addr_b, 0)) == SSA_NAME)
++ && (DR_UNCONSTRAINED_BASE (b)
++ || TREE_CODE (TREE_OPERAND (addr_b, 0)) == SSA_NAME))
+ {
+ /* For true dependences we can apply TBAA. */
+ if (flag_strict_aliasing
+Index: gcc/tree-data-ref.h
+===================================================================
+--- a/src/gcc/tree-data-ref.h (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/tree-data-ref.h (.../branches/gcc-5-branch)
+@@ -81,6 +81,10 @@
+
+ /* A list of chrecs. Access functions of the indices. */
+ vec<tree> access_fns;
++
++ /* Whether BASE_OBJECT is an access representing the whole object
++ or whether the access could not be constrained. */
++ bool unconstrained_base;
+ };
+
+ struct dr_alias
+@@ -129,6 +133,7 @@
+ #define DR_STMT(DR) (DR)->stmt
+ #define DR_REF(DR) (DR)->ref
+ #define DR_BASE_OBJECT(DR) (DR)->indices.base_object
++#define DR_UNCONSTRAINED_BASE(DR) (DR)->indices.unconstrained_base
+ #define DR_ACCESS_FNS(DR) (DR)->indices.access_fns
+ #define DR_ACCESS_FN(DR, I) DR_ACCESS_FNS (DR)[I]
+ #define DR_NUM_DIMENSIONS(DR) DR_ACCESS_FNS (DR).length ()
Index: gcc/gimplify.c
===================================================================
--- a/src/gcc/gimplify.c (.../tags/gcc_5_1_0_release)
@@ -155211,7 +157739,11 @@ Index: gcc/po/ChangeLog
===================================================================
--- a/src/gcc/po/ChangeLog (.../tags/gcc_5_1_0_release)
+++ b/src/gcc/po/ChangeLog (.../branches/gcc-5-branch)
-@@ -1,3 +1,37 @@
+@@ -1,3 +1,41 @@
++2015-06-08 Joseph Myers <joseph@codesourcery.com>
++
++ * sv.po: Update.
++
+2015-06-01 Joseph Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
@@ -360456,7 +362988,7 @@ Index: gcc/po/sv.po
-"POT-Creation-Date: 2015-02-02 16:02+0000\n"
-"PO-Revision-Date: 2015-04-12 17:17+0200\n"
+"POT-Creation-Date: 2015-04-13 20:12+0000\n"
-+"PO-Revision-Date: 2015-05-31 17:45+0200\n"
++"PO-Revision-Date: 2015-06-07 16:31+0200\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -391219,7 +393751,7 @@ Index: gcc/po/sv.po
#: fortran/check.c:176
#, gcc-internal-format, gfc-internal-format
-@@ -43013,94 +42642,79 @@
+@@ -43013,118 +42642,99 @@
msgstr "Ogiltig sort på %s vid %L"
#: fortran/check.c:195
@@ -391343,33 +393875,1057 @@ Index: gcc/po/sv.po
+msgstr "%qs-argumentet till inbyggd %qs vid %L måste ha sorten %d"
#: fortran/check.c:514
- #, fuzzy, gcc-internal-format
-@@ -43963,7 +43577,7 @@
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L cannot be INTENT(IN)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L cannot be INTENT(IN)"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L kan inte vara INTENT(IN)"
++msgstr "%qs-argumentet till inbyggd %qs vid %L kan inte vara INTENT(IN)"
+
+ #: fortran/check.c:535
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be a variable"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be a variable"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara en variabel"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara en variabel"
+
+ #: fortran/check.c:584
+-#, fuzzy, gcc-internal-format
+-#| msgid "'dim' argument of '%s' intrinsic at %L is not a valid codimension index"
++#, gcc-internal-format
+ msgid "%<dim%> argument of %qs intrinsic at %L is not a valid codimension index"
+-msgstr "”dim”-argumentet till inbyggd ”%s” vid %L är inte ett giltigt co-dimensionsindex"
++msgstr "%<dim%>-argumentet till inbyggd %qs vid %L är inte ett giltigt co-dimensionsindex"
+
+ #: fortran/check.c:634
+-#, fuzzy, gcc-internal-format
+-#| msgid "'dim' argument of %s intrinsic at %L is not a valid dimension index"
++#, gcc-internal-format
+ msgid "%<dim%> argument of %qs intrinsic at %L is not a valid dimension index"
+-msgstr "”dim”-argumentet till inbyggd ”%s” vid %L är inte ett giltigt dimensionsindex"
++msgstr "%<dim%>-argumentet till inbyggd %qs vid %L är inte ett giltigt dimensionsindex"
+
+ #: fortran/check.c:737
+ #, gcc-internal-format, gfc-internal-format
+@@ -43132,10 +42742,9 @@
+ msgstr "Olika teckenlängder (%ld/%ld) i %s vid %L"
+
+ #: fortran/check.c:859 fortran/check.c:6196
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have the same type"
++#, gcc-internal-format
+ msgid "%qs and %qs arguments of %qs intrinsic at %L must have the same type"
+-msgstr "”%s”- och ”%s”-argumenten till inbyggd ”%s” vid %L måste ha samma typ"
++msgstr "%qs- och %qs-argumenten till inbyggd %qs vid %L måste ha samma typ"
+
+ #: fortran/check.c:868 fortran/check.c:2218 fortran/check.c:2344
+ #: fortran/check.c:2418 fortran/check.c:2845
+@@ -43144,28 +42753,24 @@
+ msgstr "Olika typsorter vid %L"
+
+ #: fortran/check.c:904
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be a POINTER"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara POINTER"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara POINTER"
+
+ #: fortran/check.c:913 fortran/check.c:949 fortran/check.c:3363
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L shall not be coindexed"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L shall not be coindexed"
+-msgstr "argumentet ”%s” till inbyggd ”%s” vid %L skall inte vara co-indexerat"
++msgstr "argumentet %qs till inbyggd %qs vid %L skall inte vara co-indexerat"
+
+ #: fortran/check.c:931
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be a pointer or target VARIABLE or FUNCTION"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be a pointer or target VARIABLE or FUNCTION"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara en pekare eller mål-VARIABLE eller -FUNCTION"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara en pekare eller mål-VARIABLE eller -FUNCTION"
+
+ #: fortran/check.c:940
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER or a TARGET"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be a POINTER or a TARGET"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara en POINTER eller en TARGET"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara en POINTER eller en TARGET"
+
+ #: fortran/check.c:965
+ #, gcc-internal-format, gfc-internal-format
+@@ -43173,10 +42778,9 @@
+ msgstr "Vektorsektion med ett vektorindex vid %L skall inte vara målet för en pekare"
+
+ #: fortran/check.c:976
+-#, fuzzy, gcc-internal-format
+-#| msgid "NULL pointer at %L is not permitted as actual argument of '%s' intrinsic function"
++#, gcc-internal-format
+ msgid "NULL pointer at %L is not permitted as actual argument of %qs intrinsic function"
+-msgstr "NULL-pekare vid %L är inte tillåtet som aktuellt argument till inbyggd funktion ”%s”"
++msgstr "NULL-pekare vid %L är inte tillåtet som aktuellt argument till inbyggd funktion %qs"
+
+ #: fortran/check.c:1019
+ #, gcc-internal-format, gfc-internal-format
+@@ -43189,16 +42793,14 @@
+ msgstr "ATOM-argumentet till vid %L till den inbyggda funktionen %s måste vara en co-vektor eller co-indexat"
+
+ #: fortran/check.c:1034
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be the same type and kind as '%s'"
++#, gcc-internal-format, gfc-internal-format
+ msgid "'%s' argument of '%s' intrinsic at %L shall have the same type as '%s' at %L"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ha samma typ och sort som ”%s”"
++msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ha samma typ och sort som ”%s” vid %L"
+
+ #: fortran/check.c:1052
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "Too many arguments to %s at %L"
++#, gcc-internal-format, gfc-internal-format
+ msgid "STAT= argument to %s at %L"
+-msgstr "För många argument till %s vid %L"
++msgstr "STAT=-argument till %s vid %L"
+
+ #: fortran/check.c:1071 fortran/check.c:1137 fortran/check.c:1181
+ #, gcc-internal-format, gfc-internal-format
+@@ -43206,10 +42808,9 @@
+ msgstr "ATOM-argumentet till den inbyggda funktionen %s vid %L måste vara definierbart"
+
+ #: fortran/check.c:1085 fortran/check.c:1164
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "ATOM argument at %L to intrinsic function %s shall be an integer of ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND"
++#, gcc-internal-format, gfc-internal-format
+ msgid "ATOM argument at %L to intrinsic function %s shall be an integer of ATOMIC_INT_KIND"
+-msgstr "argumentet ATOM vid %L till inbyggd funktion %s skall vara ett heltal av sorten ATOMIC_INT_KIND eller en logisk av sorten ATOMIC_LOGICAL_KIND"
++msgstr "argumentet ATOM vid %L till inbyggd funktion %s skall vara ett heltal av sorten ATOMIC_INT_KIND"
+
+ #: fortran/check.c:1105
+ #, gcc-internal-format, gfc-internal-format
+@@ -43217,10 +42818,9 @@
+ msgstr "VALUE-argumentet till den inbyggda funktionen %s vid %L måste vara definierbart"
+
+ #: fortran/check.c:1144 fortran/check.c:1188
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "ATOM argument of the %s intrinsic function at %L shall be definable"
++#, gcc-internal-format, gfc-internal-format
+ msgid "OLD argument of the %s intrinsic function at %L shall be definable"
+-msgstr "ATOM-argumentet till den inbyggda funktionen %s vid %L måste vara definierbart"
++msgstr "OLD-argumentet till den inbyggda funktionen %s vid %L måste vara definierbart"
+
+ #: fortran/check.c:1208
+ #, gcc-internal-format, gfc-internal-format
+@@ -43228,20 +42828,17 @@
+ msgstr "Negativt argument N vid %L"
+
+ #: fortran/check.c:1380 fortran/check.c:1837
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must not be present if 'x' is COMPLEX"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must not be present if %<x%> is COMPLEX"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste får inte finnas om ”x” är COMPLEX"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste får inte finnas om %<x%> är COMPLEX"
+
+ #: fortran/check.c:1389 fortran/check.c:1846
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must have a type of either REAL or INTEGER"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must have a type of either REAL or INTEGER"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ha typen REAL eller INTEGER"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste ha typen REAL eller INTEGER"
+
+ #: fortran/check.c:1403 fortran/check.c:1409
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "Conversion from %s to default-kind COMPLEX(%d) at %L might loose precision, consider using the KIND argument"
++#, gcc-internal-format, gfc-internal-format
+ msgid "Conversion from %s to default-kind COMPLEX(%d) at %L might lose precision, consider using the KIND argument"
+ msgstr "Konvertering från %s till standardsorten COMPLEX(%d) vid %L kan tappa precision, överväg att använda argumentet KIND"
+
+@@ -43251,28 +42848,24 @@
+ msgstr "Argumentet %<A%> med INTENT(INOUT) vid %L till den inbyggda subrutinen %s skall inte ha ett vektorindex"
+
+ #: fortran/check.c:1439
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L shall not be coindexed"
++#, gcc-internal-format, gfc-internal-format
+ msgid "The A argument at %L to the intrinsic %s shall not be coindexed"
+-msgstr "argumentet ”%s” till inbyggd ”%s” vid %L skall inte vara co-indexerat"
++msgstr "Argumentet A vid %L till den inbyggda %s skall inte vara co-indexerat"
+
+ #: fortran/check.c:1462
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "STAT= argument at %L must be a scalar INTEGER variable"
++#, gcc-internal-format, gfc-internal-format
+ msgid "The stat= argument at %L must be a kind=4 integer variable"
+-msgstr "STAT=-argumentet vid %L måste vara en skalär INTEGER-variabel"
++msgstr "stat=-argumentet vid %L måste vara en heltalsvariabel av kind=4"
+
+ #: fortran/check.c:1478
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "STAT= argument at %L must be a scalar INTEGER variable"
++#, gcc-internal-format, gfc-internal-format
+ msgid "The errmsg= argument at %L must be a default-kind character variable"
+-msgstr "STAT=-argumentet vid %L måste vara en skalär INTEGER-variabel"
++msgstr "errmsg=-argumentet vid %L måste vara en teckenvariabel av standardsort"
+
+ #: fortran/check.c:1486
+-#, fuzzy, gcc-internal-format
+-#| msgid "Coarrays disabled at %C, use -fcoarray= to enable"
++#, gcc-internal-format
+ msgid "Coarrays disabled at %L, use %<-fcoarray=%> to enable"
+-msgstr "Co-vektorer avaktiverade vid %C, använd -fcoarray= för att aktivera"
++msgstr "Co-vektorer avaktiverade vid %L, använd %<-fcoarray=%> för att aktivera"
+
+ #: fortran/check.c:1501
+ #, gcc-internal-format, gfc-internal-format
+@@ -43280,10 +42873,9 @@
+ msgstr "Stöd för argumentet A vid %L som är ett polymorft argument A eller har allokerbara komponenter är inte implementerat ännu"
+
+ #: fortran/check.c:1520
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "X argument at %L to C_LOC shall not be polymorphic"
++#, gcc-internal-format, gfc-internal-format
+ msgid "The A argument at %L of CO_REDUCE shall not be polymorphic"
+-msgstr "X-argumentet vir %L till C_LOC får inte vara polymorft"
++msgstr "A-argumentet vid %L till CO_REDUCE får inte vara polymorft"
+
+ #: fortran/check.c:1527
+ #, gcc-internal-format, gfc-internal-format
+@@ -43291,19 +42883,17 @@
+ msgstr "Stöd för argumentet A vid %L med allokerbara komponenter är inte implementerat ännu"
+
+ #: fortran/check.c:1541
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "Argument of %s at %L must be of length one"
++#, gcc-internal-format, gfc-internal-format
+ msgid "OPERATOR argument at %L must be a PURE function"
+-msgstr "Argument till ”%s” vid %L måste ha längden ett"
++msgstr "OPERATOR-argumentet till vid %L måste vara en PURE-funktion"
+
+ #. None of the intrinsics fulfills the criteria of taking two arguments,
+ #. returning the same type and kind as the arguments and being permitted
+ #. as actual argument.
+ #: fortran/check.c:1551
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "Intrinsic function '%s' at %L is not permitted in an initialization expression"
++#, gcc-internal-format, gfc-internal-format
+ msgid "Intrinsic function %s at %L is not permitted for CO_REDUCE"
+-msgstr "Inbyggd funktion ”%s” vid %L är inte tillåten i ett initieringsuttryck"
++msgstr "Inbyggd funktion %s vid %L är inte tillåten för CO_REDUCE"
+
+ #: fortran/check.c:1568
+ #, gcc-internal-format, gfc-internal-format
+@@ -43356,49 +42946,42 @@
+ msgstr "Teckenlängden för argumentet A vid %L och funktionsresultatet av OPERATOR vid %L skall vara samma"
+
+ #: fortran/check.c:1683
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L shall not be a procedure"
++#, gcc-internal-format, gfc-internal-format
+ msgid "'%s' argument of '%s' intrinsic at %L shall be of type integer, real or character"
+-msgstr "Argument ”%s” till inbyggd ”%s” vid %L får inte vara en procedur"
++msgstr "Argument ”%s” till inbyggd ”%s” vid %L skall ha typen heltal, reell eller tecken"
+
+ #: fortran/check.c:1731 fortran/check.c:2263 fortran/check.c:2366
+ #: fortran/check.c:2567 fortran/check.c:2612 fortran/check.c:3893
+ #: fortran/check.c:4027 fortran/check.c:4082 fortran/check.c:5124
+ #: fortran/check.c:5253
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' intrinsic with KIND argument at %L"
++#, gcc-internal-format
+ msgid "%qs intrinsic with KIND argument at %L"
+-msgstr "inbyggd ”%s” vid KIND-argument vid %L"
++msgstr "inbyggd %qs med KIND-argument vid %L"
+
+ #: fortran/check.c:1778 fortran/check.c:2029
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L has invalid shape in dimension %d (%ld/%ld)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L has invalid shape in dimension %d (%ld/%ld)"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L har ogiltig form i dimensions %d (%ld/%ld)"
++msgstr "%qs-argumentet till inbyggd %qs vid %L har ogiltig form i dimensions %d (%ld/%ld)"
+
+ #: fortran/check.c:1793 fortran/check.c:2044 fortran/check.c:2072
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of intrinsic '%s' at %L of must have rank %d or be a scalar"
++#, gcc-internal-format
+ msgid "%qs argument of intrinsic %qs at %L of must have rank %d or be a scalar"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ha ordning %d eller vara en skalär"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste ha ordning %d eller vara en skalär"
+
+ #: fortran/check.c:1896 fortran/check.c:2939 fortran/check.c:2947
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be numeric or LOGICAL"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be numeric or LOGICAL"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara numeriskt eller LOGICAL"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara numeriskt eller LOGICAL"
+
+ #: fortran/check.c:1910
+-#, fuzzy, gcc-internal-format
+-#| msgid "Different shape for arguments '%s' and '%s' at %L for intrinsic 'dot_product'"
++#, gcc-internal-format
+ msgid "Different shape for arguments %qs and %qs at %L for intrinsic %<dot_product%>"
+-msgstr "Olika former för argument ”%s” och ”%s” vid %L för inbyggd ”dot_product”"
++msgstr "Olika former för argument %qs och %qs vid %L för inbyggd %<dot_product%>"
+
+ #: fortran/check.c:1930 fortran/check.c:1938
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be default real"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be default real"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara standard reell"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara standard reell"
+
+ #: fortran/check.c:1959
+ #, gcc-internal-format, gfc-internal-format
+@@ -43411,10 +42994,9 @@
+ msgstr "INTEGER-sorts argument som inte är standardargument till inbyggd %s vid %L"
+
+ #: fortran/check.c:2150
+-#, fuzzy, gcc-internal-format
+-#| msgid "COMPLEX argument '%s' argument of '%s' intrinsic at %L"
++#, gcc-internal-format
+ msgid "COMPLEX argument %qs of %qs intrinsic at %L"
+-msgstr "COMPLEX-argumentet ”%s” till inbyggd ”%s” vid %L"
++msgstr "COMPLEX-argumentet %qs till inbyggd %qs vid %L"
+
+ #: fortran/check.c:2314
+ #, gcc-internal-format, gfc-internal-format
+@@ -43422,10 +43004,9 @@
+ msgstr "Argument till ”%s” vid %L måste ha längden ett"
+
+ #: fortran/check.c:2373
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be the same kind as '%s'"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be the same kind as %qs"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ha samma sort som ”%s”"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste ha samma sort som %qs"
+
+ #: fortran/check.c:2463
+ #, gcc-internal-format, gfc-internal-format
+@@ -43438,88 +43019,74 @@
+ msgstr "Absolutvärdet av SHIFT vid %L måste vara mindre än eller lika med SIZE vid %L"
+
+ #: fortran/check.c:2536
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be a numeric type"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be of intrinsic type"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara en numerisk typ"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste ha en inbyggd typ"
+
+ #: fortran/check.c:2543
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be a constant"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be a data entity"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara en konstant"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara en dataentitet"
+
+ #: fortran/check.c:2754
+-#, fuzzy, gcc-internal-format
+-#| msgid "Intrinsic '%s' at %L must have at least two arguments"
++#, gcc-internal-format
+ msgid "Intrinsic %qs at %L must have at least two arguments"
+-msgstr "Inbyggd ”%s” vid %L måste ha åtminstone två argument"
++msgstr "Inbyggd %qs vid %L måste ha åtminstone två argument"
+
+ #: fortran/check.c:2802
+-#, fuzzy, gcc-internal-format
+-#| msgid "Missing '%s' argument to the %s intrinsic at %L"
++#, gcc-internal-format
+ msgid "Missing %qs argument to the %s intrinsic at %L"
+-msgstr "Saknat argument ”%s” till inbyggd ”%s” vid %L"
++msgstr "Saknat argument %qs till inbyggd %s vid %L"
+
+ #: fortran/check.c:2817
+-#, fuzzy, gcc-internal-format
+-#| msgid "Duplicate argument '%s' at %L to intrinsic %s"
++#, gcc-internal-format
+ msgid "Duplicate argument %qs at %L to intrinsic %s"
+-msgstr "Dubblerat argument ”%s” vid %L till inbyggd %s"
++msgstr "Dubblerat argument %qs vid %L till inbyggd %s"
+
+ #: fortran/check.c:2822
+-#, fuzzy, gcc-internal-format
+-#| msgid "Unknown argument '%s' at %L to intrinsic %s"
++#, gcc-internal-format
+ msgid "Unknown argument %qs at %L to intrinsic %s"
+-msgstr "Okänt argument ”%s” vid %L till inbyggd %s"
++msgstr "Okänt argument %qs vid %L till inbyggd %s"
+
+ #: fortran/check.c:2851
+-#, fuzzy, gcc-internal-format
+-#| msgid "'a%d' argument of '%s' intrinsic at %L must be %s(%d)"
++#, gcc-internal-format
+ msgid "%<a%d%> argument of %qs intrinsic at %L must be %s(%d)"
+-msgstr "”a%d”-argumentet till inbyggd ”%s” vid %L måste vara %s(%d)"
++msgstr "%<a%d%>-argumentet till inbyggd %qs vid %L måste vara %s(%d)"
+
+ #: fortran/check.c:2882
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' intrinsic with CHARACTER argument at %L"
++#, gcc-internal-format
+ msgid "%qs intrinsic with CHARACTER argument at %L"
+-msgstr "inbyggd ”%s” med CHARACTER-argument vid %L"
++msgstr "inbyggd %qs med CHARACTER-argument vid %L"
+
+ #: fortran/check.c:2889
+-#, fuzzy, gcc-internal-format
+-#| msgid "'a1' argument of '%s' intrinsic at %L must be INTEGER, REAL or CHARACTER"
++#, gcc-internal-format
+ msgid "%<a1%> argument of %qs intrinsic at %L must be INTEGER, REAL or CHARACTER"
+-msgstr "”a1”-argumentet till inbyggd ”%s” vid %L måste vara INTEGER, REAL eller CHARACTER"
++msgstr "%<a1%>-argumentet till inbyggd %qs vid %L måste vara INTEGER, REAL eller CHARACTER"
+
+ #: fortran/check.c:2956
+-#, fuzzy, gcc-internal-format
+-#| msgid "Argument types of '%s' intrinsic at %L must match (%s/%s)"
++#, gcc-internal-format
+ msgid "Argument types of %qs intrinsic at %L must match (%s/%s)"
+-msgstr "Argumenttyper till inbyggd ”%s” vid %L måste stämma överens (%s/%s)"
++msgstr "Argumenttyper till inbyggd %qs vid %L måste stämma överens (%s/%s)"
+
+ #: fortran/check.c:2970
+-#, fuzzy, gcc-internal-format
+-#| msgid "Different shape on dimension 1 for arguments '%s' and '%s' at %L for intrinsic matmul"
++#, gcc-internal-format
+ msgid "Different shape on dimension 1 for arguments %qs and %qs at %L for intrinsic matmul"
+-msgstr "Olika form på dimension 1 för argumenten ”%s” och ”%s” vid %L för inbyggd matmul"
++msgstr "Olika form på dimension 1 för argumenten %qs och %qs vid %L för inbyggd matmul"
+
+ #: fortran/check.c:2989
+-#, fuzzy, gcc-internal-format
+-#| msgid "Different shape on dimension 2 for argument '%s' and dimension 1 for argument '%s' at %L for intrinsic matmul"
++#, gcc-internal-format
+ msgid "Different shape on dimension 2 for argument %qs and dimension 1 for argument %qs at %L for intrinsic matmul"
+-msgstr "Olika form på dimension 2 för argument ”%s” och dimension 1 för argument ”%s” vid %L för inbyggd matmul"
++msgstr "Olika form på dimension 2 för argument %qs och dimension 1 för argument %qs vid %L för inbyggd matmul"
+
+ #: fortran/check.c:2998
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be of rank 1 or 2"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be of rank 1 or 2"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ha ordning 1 eller 2"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste ha ordning 1 eller 2"
+
+ #: fortran/check.c:3173
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be INTEGER"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara INTEGER"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara INTEGER"
+
+ #: fortran/check.c:3233
+ #, gcc-internal-format, gfc-internal-format
+@@ -43547,16 +43114,14 @@
+ msgstr "Argumenten FROM och TO till den inbyggda MOVE_ALLOC vid %L måste ha samma co-ordning %d/%d"
+
+ #: fortran/check.c:3298
+-#, fuzzy, gcc-internal-format
+-#| msgid "Argument 'S' of NEAREST at %L shall not be zero"
++#, gcc-internal-format
+ msgid "Argument %<S%> of NEAREST at %L shall not be zero"
+-msgstr "Argument ”S” till NEAREST vid %L får inte vara noll"
++msgstr "Argument %<S%> till NEAREST vid %L får inte vara noll"
+
+ #: fortran/check.c:3348
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER, ALLOCATABLE or procedure pointer"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be a POINTER, ALLOCATABLE or procedure pointer"
+-msgstr "Argument ”%s” till inbyggd ”%s” vid %L måste vara en POINTER, ALLOCATABLE eller procedurpekare"
++msgstr "Argument %qs till inbyggd %qs vid %L måste vara en POINTER, ALLOCATABLE eller procedurpekare"
+
+ #: fortran/check.c:3356
+ #, gcc-internal-format, gfc-internal-format
+@@ -43564,28 +43129,24 @@
+ msgstr "Inbyggd NULL med allokerbar MOLD vid %L"
+
+ #: fortran/check.c:3435 fortran/check.c:5200
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must provide at least as many elements as there are .TRUE. values in '%s' (%ld/%d)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must provide at least as many elements as there are .TRUE. values in %qs (%ld/%d)"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ge åtminstone lika många element som det finns .TRUE.-värden i ”%s” (%ld/%d)"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste ge åtminstone lika många element som det finns .TRUE.-värden i %qs (%ld/%d)"
+
+ #: fortran/check.c:3493
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be of a dummy variable"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be of a dummy variable"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara en attrappvariabel"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara en attrappvariabel"
+
+ #: fortran/check.c:3501
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be of an OPTIONAL dummy variable"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be of an OPTIONAL dummy variable"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara en OPTIONAL attrappvariabel"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara en OPTIONAL attrappvariabel"
+
+ #: fortran/check.c:3520
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must not be a subobject of '%s'"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must not be a subobject of %qs"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L får inte vara ett underobjekt till ”%s”"
++msgstr "%qs-argumentet till inbyggd %qs vid %L får inte vara ett underobjekt till %qs"
+
+ #: fortran/check.c:3568
+ #, gcc-internal-format, gfc-internal-format
+@@ -43593,46 +43154,39 @@
+ msgstr "Argumentet till inbyggd RANK vid %L måste vara ett dataobjekt"
+
+ #: fortran/check.c:3672
+-#, fuzzy, gcc-internal-format
+-#| msgid "'shape' argument of 'reshape' intrinsic at %L must be an array of constant size"
++#, gcc-internal-format
+ msgid "%<shape%> argument of %<reshape%> intrinsic at %L must be an array of constant size"
+-msgstr "”shape”-argumentet till inbyggd ”reshape” vid %L måste vara en vektor av konstant storlek"
++msgstr "%<shape%>-argumentet till inbyggd %<reshape%> vid %L måste vara en vektor av konstant storlek"
+
+ #: fortran/check.c:3682
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L is empty"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L is empty"
+-msgstr "”%s”-argumentetet till inbyggd ”%s” vid %L är tomt"
++msgstr "%qs-argumentetet till inbyggd %qs vid %L är tomt"
+
+ #: fortran/check.c:3689
+-#, fuzzy, gcc-internal-format
+-#| msgid "'shape' argument of 'reshape' intrinsic at %L has more than %d elements"
++#, gcc-internal-format
+ msgid "%<shape%> argument of %<reshape%> intrinsic at %L has more than %d elements"
+-msgstr "”shape”-argumentet till inbyggd ”reshape” vid %L har mer än %d element"
++msgstr "%<shape%>-argumentet till inbyggd %<reshape%> vid %L har mer än %d element"
+
+ #: fortran/check.c:3706
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L has negative element (%d)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L has negative element (%d)"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L har negativa element (%d)"
++msgstr "%qs-argumentet till inbyggd %qs vid %L har negativa element (%d)"
+
+ #: fortran/check.c:3746
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L has wrong number of elements (%d/%d)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L has wrong number of elements (%d/%d)"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L har fel antal element (%d/%d)"
++msgstr "%qs-argumentet till inbyggd %qs vid %L har fel antal element (%d/%d)"
+
+ #: fortran/check.c:3764
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L has out-of-range dimension (%d)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L has out-of-range dimension (%d)"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L har dimension utanför giltigt intervall (%d)"
++msgstr "%qs-argumentet till inbyggd %qs vid %L har dimension utanför giltigt intervall (%d)"
+
+ #: fortran/check.c:3773
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L has invalid permutation of dimensions (dimension '%d' duplicated)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L has invalid permutation of dimensions (dimension %<%d%> duplicated)"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L har en ogiltig permunation av dimensioner (dimension ”%d” dubblerad)"
++msgstr "%qs-argumentet till inbyggd %qs vid %L har en ogiltig permunation av dimensioner (dimension %<%d%> dubblerad)"
+
+ #: fortran/check.c:3809
+ #, gcc-internal-format, gfc-internal-format
+@@ -43640,52 +43194,44 @@
+ msgstr "Utan utfyllnad finns det inte tillräckligt med element i inbyggda RESHAPE-källan vid %L för att stämma med formen"
+
+ #: fortran/check.c:3826 fortran/check.c:3845
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L cannot be of type %s"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L cannot be of type %s"
+-msgstr "Argumentet ”%s” till inbyggd ”%s” vid %L kan inte ha typen %s"
++msgstr "Argumentet %qs till inbyggd %qs vid %L kan inte ha typen %s"
+
+ #: fortran/check.c:3836 fortran/check.c:3855
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be of an extensible type"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be of an extensible type"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara en utvidgningsvbar typ"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara en utvidgningsvbar typ"
+
+ #: fortran/check.c:3954
+-#, fuzzy, gcc-internal-format
+-#| msgid "SELECTED_REAL_KIND with neither 'P' nor 'R' argument at %L"
++#, gcc-internal-format
+ msgid "SELECTED_REAL_KIND with neither %<P%> nor %<R%> argument at %L"
+-msgstr "SELECTED_REAL_KIND med varken ”P”- eller ”R”-argument vid %L"
++msgstr "SELECTED_REAL_KIND med varken %<P%>- eller %<R%>-argument vid %L"
+
+ #: fortran/check.c:3985
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' intrinsic with RADIX argument at %L"
++#, gcc-internal-format
+ msgid "%qs intrinsic with RADIX argument at %L"
+-msgstr "inbyggd ”%s” med RADIX-argument vid %L"
++msgstr "inbyggd %qs med RADIX-argument vid %L"
+
+ #: fortran/check.c:4020
+-#, fuzzy, gcc-internal-format
+-#| msgid "'source' argument of 'shape' intrinsic at %L must not be an assumed size array"
++#, gcc-internal-format
+ msgid "%<source%> argument of %<shape%> intrinsic at %L must not be an assumed size array"
+-msgstr "”source”-argumentet till inbyggd ”shape” vid %L får inte vara en vektor med antagen storlek"
++msgstr "%<source%>-argumentet till inbyggd %<shape%> vid %L får inte vara en vektor med antagen storlek"
+
+ #: fortran/check.c:4097 fortran/check.c:6226
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L shall not be a procedure"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L shall not be a procedure"
+-msgstr "Argument ”%s” till inbyggd ”%s” vid %L får inte vara en procedur"
++msgstr "Argument %qs till inbyggd %qs vid %L får inte vara en procedur"
+
+ #: fortran/check.c:4110 fortran/check.c:4249 fortran/check.c:6218
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L shall not be TYPE(*)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L shall not be TYPE(*)"
+-msgstr "argumentet ”%s” till inbyggd ”%s” vid %L skall inte vara TYPE(*)"
++msgstr "Argumentet %qs till inbyggd %qs vid %L skall inte vara TYPE(*)"
+
+ #: fortran/check.c:4121 fortran/check.c:4261
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L shall not be an assumed-size array"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L shall not be an assumed-size array"
+-msgstr "Argumentet ”%s” till inbyggd ”%s” vid %L får inte vara en vektor med antagen storlek"
++msgstr "Argumentet %qs till inbyggd %qs vid %L får inte vara en vektor med antagen storlek"
+
+ #: fortran/check.c:4191
+ #, gcc-internal-format
+@@ -43693,10 +43239,9 @@
+ msgstr "is_c_interoperable(): gfc_simplify_expr misslyckades"
+
+ #: fortran/check.c:4240
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be an interoperable data entity: %s"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be an interoperable data entity: %s"
+-msgstr "Argumentet ”%s” till inbyggd ”%s” vid %L måste vara en interoperabel dataenhet: %s"
++msgstr "Argumentet %qs till inbyggd %qs vid %L måste vara en interoperabel dataenhet: %s"
+
+ #: fortran/check.c:4279
+ #, gcc-internal-format, gfc-internal-format
+@@ -43779,10 +43324,9 @@
+ msgstr "Argumentet X vid %L till C_FUNLOC får inte vara co-indexerat"
+
+ #: fortran/check.c:4460
+-#, fuzzy, gcc-internal-format
+-#| msgid "Function result '%s' at %L is invalid as X argument to C_FUNLOC"
++#, gcc-internal-format
+ msgid "Function result %qs at %L is invalid as X argument to C_FUNLOC"
+-msgstr "Funktionsresultatet ”%s” vid %L är ogiltigt som X-argument till C_FUNLOC"
++msgstr "Funktionsresultatet %qs vid %L är ogiltigt som X-argument till C_FUNLOC"
+
+ #: fortran/check.c:4468
+ #, gcc-internal-format, gfc-internal-format
+@@ -43802,7 +43346,7 @@
+ #: fortran/check.c:4494
+ #, gcc-internal-format, gfc-internal-format
+ msgid "X argument at %L to C_LOC shall not be polymorphic"
+-msgstr "X-argumentet vir %L till C_LOC får inte vara polymorft"
++msgstr "X-argumentet vid %L till C_LOC får inte vara polymorft"
+
+ #: fortran/check.c:4505
+ #, gcc-internal-format, gfc-internal-format
+@@ -43840,16 +43384,14 @@
+ msgstr "REAL-argument utan dubbel precision till inbyggd %s vid %L"
+
+ #: fortran/check.c:4586
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be less than rank %d"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be less than rank %d"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara av lägre ordning än %d"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara av lägre ordning än %d"
+
+ #: fortran/check.c:4605
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L is not a valid dimension index"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L is not a valid dimension index"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L är inte ett giltigt dimensionsindex"
++msgstr "%qs-argumentet till inbyggd %qs vid %L är inte ett giltigt dimensionsindex"
+
+ #: fortran/check.c:4868
+ #, gcc-internal-format, gfc-internal-format
+@@ -43867,16 +43409,14 @@
+ msgstr "DISTANCE= argument till NUM_IMAGES vid %L"
+
+ #: fortran/check.c:4925
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "MOLD argument to NULL required at %L"
++#, gcc-internal-format, gfc-internal-format
+ msgid "FAILED= argument to NUM_IMAGES at %L"
+-msgstr "MOLD-argumentet till NULL krävs vid %L"
++msgstr "FAILED=-argument till NUM_IMAGES vid %L"
+
+ #: fortran/check.c:4948
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "DIM argument without ARRAY argument not allowed for THIS_IMAGE intrinsic at %L"
++#, gcc-internal-format, gfc-internal-format
+ msgid "DIM argument without COARRAY argument not allowed for THIS_IMAGE intrinsic at %L"
+-msgstr "DIM-argument utan ARRAY-argument är inte tillåtet för inbyggd THIS_IMAGE vid %L"
++msgstr "DIM-argument utan COARRAY-argument är inte tillåtet för inbyggd THIS_IMAGE vid %L"
+
+ #: fortran/check.c:4955
+ #, gcc-internal-format, gfc-internal-format
+@@ -43884,10 +43424,9 @@
+ msgstr "Argumentet DISTANCE får inte anges tillsammans med argumentet COARRAY eller DIM i den inbyggda vid %L"
+
+ #: fortran/check.c:4966
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "Unexpected junk in formal argument list at %C"
++#, gcc-internal-format, gfc-internal-format
+ msgid "Unexpected DIM argument with noncoarray argument at %L"
+-msgstr "Oväntat skräp i formell argumentlista vid %C"
++msgstr "Oväntat DIM-argument med icke-co-vektor-argument vid %L"
+
+ #: fortran/check.c:4984
+ #, gcc-internal-format, gfc-internal-format
+@@ -43895,10 +43434,9 @@
+ msgstr "DISTANCE= argument till THIS_IMAGE vid %L"
+
+ #: fortran/check.c:5064
+-#, fuzzy, gcc-internal-format
+-#| msgid "'MOLD' argument of 'TRANSFER' intrinsic at %L must not be %s"
++#, gcc-internal-format
+ msgid "%<MOLD%> argument of %<TRANSFER%> intrinsic at %L must not be %s"
+-msgstr "MOLD-argumentet till inbyggd ”TRANSFER” vid %L måste vara %s"
++msgstr "%<MOLD%>-argumentet till inbyggd %<TRANSFER%> vid %L måste vara %s"
+
+ #: fortran/check.c:5092
+ #, gcc-internal-format, gfc-internal-format
+@@ -43906,22 +43444,19 @@
+ msgstr "Inbyggd TRANSFER vid %L har delvis odefinierat resultat: källstorlek %ld < resultatstorlek %ld"
+
+ #: fortran/check.c:5214
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must have the same rank as '%s' or be a scalar"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must have the same rank as %qs or be a scalar"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ha samma ordning som ”%s” eller vara en skalär"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste ha samma ordning som %qs eller vara en skalär"
+
+ #: fortran/check.c:5227
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have identical shape."
++#, gcc-internal-format
+ msgid "%qs and %qs arguments of %qs intrinsic at %L must have identical shape."
+-msgstr "”%s”- och ”%s”-argumenten till inbyggd ”%s” vid %L måste ha identiska former"
++msgstr "%qs- och %qs-argumenten till inbyggd %qs vid %L måste ha identiska former"
+
+ #: fortran/check.c:5485 fortran/check.c:5517
+-#, fuzzy, gcc-internal-format
+-#| msgid "Size of '%s' argument of '%s' intrinsic at %L too small (%i/%i)"
++#, gcc-internal-format
+ msgid "Size of %qs argument of %qs intrinsic at %L too small (%i/%i)"
+-msgstr "Stolek på ”%s”-argumentet till inbyggd ”%s” vid %L är för liten (%i/%i)"
++msgstr "Stolek på %qs-argumentet till inbyggd %qs vid %L är för liten (%i/%i)"
+
+ #: fortran/check.c:5525
+ #, gcc-internal-format, gfc-internal-format
+@@ -43929,10 +43464,9 @@
+ msgstr "För många argument till %s vid %L"
+
+ #: fortran/check.c:5565
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "The TO argument to MOVE_ALLOC at %L shall not be coindexed"
++#, gcc-internal-format, gfc-internal-format
+ msgid "COUNT argument to SYSTEM_CLOCK at %L has non-default kind"
+-msgstr "Argumentet TO till MOVE_ALLOC %L skall inte vara co-indexerat"
++msgstr "Argumentet COUNT till SYSTEM_CLOCK vid %L har icke-standardsort"
+
+ #: fortran/check.c:5584
+ #, gcc-internal-format, gfc-internal-format
+@@ -43940,30 +43474,26 @@
+ msgstr "Reellt COUNT_RATE-argument till SYSTEM_CLOCK vid %L"
+
+ #: fortran/check.c:5594
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "The TO argument to MOVE_ALLOC at %L shall not be coindexed"
++#, gcc-internal-format, gfc-internal-format
+ msgid "COUNT_RATE argument to SYSTEM_CLOCK at %L has non-default kind"
+-msgstr "Argumentet TO till MOVE_ALLOC %L skall inte vara co-indexerat"
++msgstr "Argumentet COUNT_RATE till SYSTEM_CLOCK vid %L har en icke-standardsort"
+
+ #: fortran/check.c:5611
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "The FROM argument to MOVE_ALLOC at %L shall not be coindexed"
++#, gcc-internal-format, gfc-internal-format
+ msgid "COUNT_MAX argument to SYSTEM_CLOCK at %L has non-default kind"
+-msgstr "Argumentet FROM till MOVE_ALLOC %L skall inte vara co-indexerat"
++msgstr "Argumentet COUNT_MAX till SYSTEM_CLOCK vid %L har en icke-standardsort"
+
+ #: fortran/check.c:5828
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be of a kind not wider than the default kind (%d)"
++#, gcc-internal-format
+ msgid "%qs argument of %qs intrinsic at %L must be of a kind not wider than the default kind (%d)"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste ha en sort som inte är bredare än standardsorten (%d)"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste ha en sort som inte är bredare än standardsorten (%d)"
+
+ #: fortran/check.c:6180 fortran/check.c:6188
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
++#, gcc-internal-format
msgid "%qs argument of %qs intrinsic at %L must be INTEGER or LOGICAL"
- msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara INTEGER eller LOGICAL"
+-msgstr "”%s”-argumentet till inbyggd ”%s” vid %L måste vara INTEGER eller LOGICAL"
++msgstr "%qs-argumentet till inbyggd %qs vid %L måste vara INTEGER eller LOGICAL"
-#: fortran/class.c:611
+#: fortran/class.c:614
#, gcc-internal-format, gfc-internal-format
msgid "Assumed size polymorphic objects or components, such as that at %C, have not yet been implemented"
msgstr "Polymorfa objekt eller komponenter med antagen storlek, såsom den vid %C, har inte implementerats ännu"
-@@ -43970,13 +43584,13 @@
+@@ -43970,29 +43500,25 @@
#. Since the extension field is 8 bit wide, we can only have
#. up to 255 extension levels.
-#: fortran/class.c:722 fortran/decl.c:7808
+-#, fuzzy, gcc-internal-format
+-#| msgid "Maximum extension level reached with type '%s' at %L"
+#: fortran/class.c:725 fortran/decl.c:7811
- #, fuzzy, gcc-internal-format
- #| msgid "Maximum extension level reached with type '%s' at %L"
++#, gcc-internal-format
msgid "Maximum extension level reached with type %qs at %L"
- msgstr "Maximal utökningsnivå nådd med typen ”%s” vid %L"
+-msgstr "Maximal utökningsnivå nådd med typen ”%s” vid %L"
++msgstr "Maximal utökningsnivå nådd med typen %qs vid %L"
-#: fortran/class.c:2752 fortran/class.c:2826
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' of '%s' is PRIVATE at %L"
+#: fortran/class.c:2761 fortran/class.c:2835
- #, fuzzy, gcc-internal-format
- #| msgid "'%s' of '%s' is PRIVATE at %L"
++#, gcc-internal-format
msgid "%qs of %qs is PRIVATE at %L"
-@@ -44288,7 +43902,7 @@
+-msgstr "”%s” av ”%s” är PRIVATE vid %L"
++msgstr "%qs av %qs är PRIVATE vid %L"
+
+ #: fortran/cpp.c:465
+-#, fuzzy, gcc-internal-format
+-#| msgid "To enable preprocessing, use -cpp"
++#, gcc-internal-format
+ msgid "To enable preprocessing, use %<-cpp%>"
+-msgstr "För att aktivera preprocessning, använd -cpp"
++msgstr "För att aktivera preprocessning, använd %<-cpp%>"
+
+ #: fortran/cpp.c:563 fortran/cpp.c:574 fortran/cpp.c:681
+-#, fuzzy, gcc-internal-format
+-#| msgid "opening output file %s: %s"
++#, gcc-internal-format
+ msgid "opening output file %qs: %s"
+-msgstr "vid öppnandet av utdatafil %s: %s"
++msgstr "vid öppnandet av utdatafil %qs: %s"
+
+ #: fortran/data.c:65
+ #, gcc-internal-format, gfc-internal-format
+@@ -44025,10 +43551,9 @@
+ msgstr "Dataelement ovanför övre vektorgräns vid %L"
+
+ #: fortran/data.c:327 fortran/data.c:493
+-#, fuzzy, gcc-internal-format
+-#| msgid "re-initialization of '%s' at %L"
++#, gcc-internal-format
+ msgid "re-initialization of %qs at %L"
+-msgstr "ominitiering av ”%s” vid %L"
++msgstr "ominitiering av %qs vid %L"
+
+ #: fortran/data.c:693
+ #, gcc-internal-format
+@@ -44036,22 +43561,19 @@
+ msgstr "ATTGÖRA: Vektorsektionen i datasatser"
+
+ #: fortran/decl.c:287
+-#, fuzzy, gcc-internal-format
+-#| msgid "Host associated variable '%s' may not be in the DATA statement at %C"
++#, gcc-internal-format
+ msgid "Host associated variable %qs may not be in the DATA statement at %C"
+-msgstr "Värdassocierad variabel ”%s” får inte finnas i DATA-sats vid %C"
++msgstr "Värdassocierad variabel %qs får inte finnas i DATA-sats vid %C"
+
+ #: fortran/decl.c:294
+-#, fuzzy, gcc-internal-format
+-#| msgid "initialization of common block variable '%s' in DATA statement at %C"
++#, gcc-internal-format
+ msgid "initialization of common block variable %qs in DATA statement at %C"
+-msgstr "initiering av common-blockvariabel ”%s” i DATA-sats vid %C"
++msgstr "initiering av common-blockvariabel %qs i DATA-sats vid %C"
+
+ #: fortran/decl.c:405
+-#, fuzzy, gcc-internal-format
+-#| msgid "Symbol '%s' must be a PARAMETER in DATA statement at %C"
++#, gcc-internal-format
+ msgid "Symbol %qs must be a PARAMETER in DATA statement at %C"
+-msgstr "Symbolen ”%s” måste vara en PARAMETER i DATA-sats vid %C"
++msgstr "Symbolen %qs måste vara en PARAMETER i DATA-sats vid %C"
+
+ #: fortran/decl.c:430
+ #, gcc-internal-format, gfc-internal-format
+@@ -44114,64 +43636,54 @@
+ msgstr "Proceduren ”%s” vid %C har ett explicit gränssnitt och får inte ha attribut deklarerade vid %L"
+
+ #: fortran/decl.c:1016
+-#, fuzzy, gcc-internal-format
+-#| msgid "Procedure '%s' at %L must have the BIND(C) attribute to be C interoperable"
++#, gcc-internal-format
+ msgid "Procedure %qs at %L must have the BIND(C) attribute to be C interoperable"
+-msgstr "Proceduren ”%s” vid %L måste ha attributet BIND(C) för att vara C-interoperativ"
++msgstr "Proceduren %qs vid %L måste ha attributet BIND(C) för att vara C-interoperativ"
+
+ #: fortran/decl.c:1043
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is not C interoperable because derived type '%s' is not C interoperable"
++#, gcc-internal-format
+ msgid "Variable %qs at %L is a dummy argument to the BIND(C) procedure %qs but is not C interoperable because derived type %qs is not C interoperable"
+-msgstr "Typen ”%s” vid %L är ett atrappargument till BIND(C)-proceduren ”%s” men är inte interoperativ med C för att den härledda typen ”%s” inte är interoperativ med C"
++msgstr "Typen %qs vid %L är ett atrappargument till BIND(C)-proceduren %qs men är inte interoperativ med C för att den härledda typen %qs inte är interoperativ med C"
+
+ #: fortran/decl.c:1050
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is not C interoperable because it is polymorphic"
++#, gcc-internal-format
+ msgid "Variable %qs at %L is a dummy argument to the BIND(C) procedure %qs but is not C interoperable because it is polymorphic"
+-msgstr "Variabeln ”%s” vid %L är ett atrappargument till BIND(C)-proceduren ”%s” men är inte interoperativ med C eftersom den är polymorf"
++msgstr "Variabeln %qs vid %L är ett atrappargument till BIND(C)-proceduren %qs men är inte interoperativ med C eftersom den är polymorf"
+
+ #: fortran/decl.c:1057
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L is a dummy argument of the BIND(C) procedure '%s' but may not be C interoperable"
++#, gcc-internal-format
+ msgid "Variable %qs at %L is a dummy argument of the BIND(C) procedure %qs but may not be C interoperable"
+-msgstr "Variabeln ”%s” vid %L är en attrapparameter till BIND(C)-proceduren ”%s” men är kanske inte interoperativ med C"
++msgstr "Variabeln %qs vid %L är en attrapparameter till BIND(C)-proceduren %qs men är kanske inte interoperativ med C"
+
+ #: fortran/decl.c:1072
+-#, fuzzy, gcc-internal-format
+-#| msgid "Character argument '%s' at %L must be length 1 because procedure '%s' is BIND(C)"
++#, gcc-internal-format
+ msgid "Character argument %qs at %L must be length 1 because procedure %qs is BIND(C)"
+-msgstr "Teckenargument ”%s” vid %L måste ha längden 1 eftersom proceduren ”%s” är BIND(C)"
++msgstr "Teckenargument %qs vid %L måste ha längden 1 eftersom proceduren %qs är BIND(C)"
+
+ #: fortran/decl.c:1085
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L with ALLOCATABLE attribute in procedure '%s' with BIND(C)"
++#, gcc-internal-format
+ msgid "Variable %qs at %L with ALLOCATABLE attribute in procedure %qs with BIND(C)"
+-msgstr "Variabeln ”%s” vid %L med attributet ALLOCATABLE i proceduren ”%s” med BIND(C)"
++msgstr "Variabeln %qs vid %L med attributet ALLOCATABLE i proceduren %qs med BIND(C)"
+
+ #: fortran/decl.c:1093
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L with POINTER attribute in procedure '%s' with BIND(C)"
++#, gcc-internal-format
+ msgid "Variable %qs at %L with POINTER attribute in procedure %qs with BIND(C)"
+-msgstr "Variabeln ”%s” vid %L med attributet POINTER i proceduren ”%s” med BIND(C)"
++msgstr "Variabeln %qs vid %L med attributet POINTER i proceduren %qs med BIND(C)"
+
+ #: fortran/decl.c:1102
+-#, fuzzy, gcc-internal-format
+-#| msgid "Scalar variable '%s' at %L with POINTER or ALLOCATABLE in procedure '%s' with BIND(C) is not yet supported"
++#, gcc-internal-format
+ msgid "Scalar variable %qs at %L with POINTER or ALLOCATABLE in procedure %qs with BIND(C) is not yet supported"
+-msgstr "Den skalära Variabeln ”%s” vid %L med POINTER eller ALLOCATABLE i proceduren ”%s” med BIND(C) stödjs inte ännu"
++msgstr "Den skalära Variabeln %qs vid %L med POINTER eller ALLOCATABLE i proceduren %qs med BIND(C) stödjs inte ännu"
+
+ #: fortran/decl.c:1111
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L cannot have both the OPTIONAL and the VALUE attribute because procedure '%s' is BIND(C)"
++#, gcc-internal-format
+ msgid "Variable %qs at %L cannot have both the OPTIONAL and the VALUE attribute because procedure %qs is BIND(C)"
+-msgstr "Variabeln ”%s” vid %L kan inte både ha attributet OPTIONAL och VALUE eftersom proceduren ”%s” är BIND(C)"
++msgstr "Variabeln %qs vid %L kan inte både ha attributet OPTIONAL och VALUE eftersom proceduren %qs är BIND(C)"
+
+ #: fortran/decl.c:1118
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L with OPTIONAL attribute in procedure '%s' which is BIND(C)"
++#, gcc-internal-format
+ msgid "Variable %qs at %L with OPTIONAL attribute in procedure %qs which is BIND(C)"
+-msgstr "Variabeln ”%s” vid %L med attributet OPTIONAL i proceduren ”%s” som är BIND(C)"
++msgstr "Variabeln %qs vid %L med attributet OPTIONAL i proceduren %qs som är BIND(C)"
+
+ #: fortran/decl.c:1129
+ #, gcc-internal-format, gfc-internal-format
+@@ -44179,10 +43691,9 @@
+ msgstr "Vektorn ”%s” med antagen form vid %L som attrappargument till BIND(C)-proceduren ”%s” vid %L"
+
+ #: fortran/decl.c:1209
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' in common block '%s' at %C must be declared with a C interoperable kind since common block '%s' is BIND(C)"
++#, gcc-internal-format
+ msgid "Variable %qs in common block %qs at %C must be declared with a C interoperable kind since common block %qs is BIND(C)"
+-msgstr "Variabeln ”%s” i common-blocket ”%s” vid %C måste deklareras med en sort som är C-interoperativ eftersom common-blocket ”%s” är BIND(C)"
++msgstr "Variabeln %qs i common-blocket %qs vid %C måste deklareras med en sort som är C-interoperativ eftersom common-blocket %qs är BIND(C)"
+
+ #: fortran/decl.c:1252
+ #, gcc-internal-format, gfc-internal-format
+@@ -44195,10 +43706,9 @@
+ msgstr "CHARACTER-elementen i vektorkonstrueraren vid %L måste ha samma längd (%d/%d)"
+
+ #: fortran/decl.c:1349
+-#, fuzzy, gcc-internal-format
+-#| msgid "Initializer not allowed for PARAMETER '%s' at %C"
++#, gcc-internal-format
+ msgid "Initializer not allowed for PARAMETER %qs at %C"
+-msgstr "Initierare är inte tillåten för PARAMETER ”%s” vid %C"
++msgstr "Initierare är inte tillåten för PARAMETER %qs vid %C"
+
+ #: fortran/decl.c:1359
+ #, gcc-internal-format, gfc-internal-format
+@@ -44206,10 +43716,9 @@
+ msgstr "PARAMETER vid %L saknar en initierare"
+
+ #: fortran/decl.c:1369
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %C with an initializer already appears in a DATA statement"
++#, gcc-internal-format
+ msgid "Variable %qs at %C with an initializer already appears in a DATA statement"
+-msgstr "Variabeln ”%s” vid %C med en initierare finns redan i en DATA-sats"
++msgstr "Variabeln %qs vid %C med en initierare finns redan i en DATA-sats"
+
+ #: fortran/decl.c:1450
+ #, gcc-internal-format, gfc-internal-format
+@@ -44272,16 +43781,14 @@
+ msgstr "annan pekarinitiering än NULL vid %C"
+
+ #: fortran/decl.c:1809
+-#, fuzzy, gcc-internal-format
+-#| msgid "Function name '%s' not allowed at %C"
++#, gcc-internal-format
+ msgid "Function name %qs not allowed at %C"
+-msgstr "Funktionsnamnet ”%s” är inte tillåtet vid %C"
++msgstr "Funktionsnamnet %qs är inte tillåtet vid %C"
+
+ #: fortran/decl.c:1876
+-#, fuzzy, gcc-internal-format
+-#| msgid "Non-PARAMETER symbol '%s' at %L can't be implied-shape"
++#, gcc-internal-format
+ msgid "Non-PARAMETER symbol %qs at %L can't be implied-shape"
+-msgstr "Icke-PARAMETER-symbolen ”%s” vid %L kan inte ha antagen form"
++msgstr "Icke-PARAMETER-symbolen %qs vid %L kan inte ha antagen form"
+
+ #: fortran/decl.c:1886
+ #, gcc-internal-format, gfc-internal-format
+@@ -44288,7 +43795,7 @@
msgid "Implied-shape array at %L"
msgstr "Vektor med antagen form vid %L"
@@ -391378,25 +394934,37 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate array spec for Cray pointee at %C"
msgstr "Dubblerad vektorspecifikation för Cray-utpekad vid vid %C"
-@@ -44309,7 +43923,7 @@
+@@ -44304,23 +43811,21 @@
+ msgstr "Gammaldags initiering vid %C"
+
+ #: fortran/decl.c:2027
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "invalid value-initialization of reference type"
++#, gcc-internal-format, gfc-internal-format
msgid "Invalid old style initialization for derived type component at %C"
- msgstr "ogiltig värdeinitiering av referenstyper"
+-msgstr "ogiltig värdeinitiering av referenstyper"
++msgstr "Felaktig gammaldags initiering av härledd typkomponent vid %C"
-#: fortran/decl.c:2044 fortran/decl.c:5052
+#: fortran/decl.c:2044 fortran/decl.c:5055
#, gcc-internal-format, gfc-internal-format
msgid "Initialization at %C isn't for a pointer variable"
msgstr "Initieringen vid %C är inte för en pekarvariabel"
-@@ -44320,7 +43934,7 @@
+
+ #: fortran/decl.c:2057
+-#, fuzzy, gcc-internal-format
+-#| msgid "Pointer initialization at %C requires '=>', not '='"
++#, gcc-internal-format
msgid "Pointer initialization at %C requires %<=>%>, not %<=%>"
- msgstr "Pekarinitiering vid %C kräver ”=>”, inte ”=”"
+-msgstr "Pekarinitiering vid %C kräver ”=>”, inte ”=”"
++msgstr "Pekarinitiering vid %C kräver %<=>%>, inte %<=%>"
-#: fortran/decl.c:2066 fortran/decl.c:7957
+#: fortran/decl.c:2066 fortran/decl.c:7960
#, gcc-internal-format, gfc-internal-format
msgid "Expected an initialization expression at %C"
msgstr "Ett initieringsuttryck förväntades vid %C"
-@@ -44406,7 +44020,7 @@
+@@ -44406,7 +43911,7 @@
msgstr "Antagen typ vid %C"
#: fortran/decl.c:2680 fortran/decl.c:2711 fortran/decl.c:2740
@@ -391405,18 +394973,24 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "TYPE with intrinsic-type-spec at %C"
msgstr "TYPE med inbyggd typspecifikation vid %C"
-@@ -44421,8 +44035,8 @@
+@@ -44421,12 +43926,11 @@
msgid "CLASS statement at %C"
msgstr "CLASS-sats vid %C"
-#: fortran/decl.c:2845 fortran/decl.c:2858 fortran/decl.c:3300
-#: fortran/decl.c:3308
+-#, fuzzy, gcc-internal-format
+-#| msgid "Type name '%s' at %C is ambiguous"
+#: fortran/decl.c:2845 fortran/decl.c:2858 fortran/decl.c:3303
+#: fortran/decl.c:3311
- #, fuzzy, gcc-internal-format
- #| msgid "Type name '%s' at %C is ambiguous"
++#, gcc-internal-format
msgid "Type name %qs at %C is ambiguous"
-@@ -44433,193 +44047,193 @@
+-msgstr "Typnamnet ”%s” vid %C är tvetydigt"
++msgstr "Typnamnet %qs vid %C är tvetydigt"
+
+ #: fortran/decl.c:2873
+ #, gcc-internal-format, gfc-internal-format
+@@ -44433,1025 +43937,995 @@
msgid "Type name '%s' at %C conflicts with previously declared entity at %L, which has the same name"
msgstr "Typnamnet ”%s” vid %C står i konflikt med tidigare deklarerad enhet vid %L, som har samma namn"
@@ -391445,11 +395019,13 @@ Index: gcc/po/sv.po
msgstr "Bokstäver måste vara i alfabetisk ordning i IMPLICIT-sats vid %C"
-#: fortran/decl.c:3150
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "SAVE statement at %C follows blanket SAVE statement"
+#: fortran/decl.c:3153
- #, fuzzy, gcc-internal-format, gfc-internal-format
- #| msgid "SAVE statement at %C follows blanket SAVE statement"
++#, gcc-internal-format, gfc-internal-format
msgid "IMPLICIT statement at %C following an IMPLICIT NONE (type) statement"
- msgstr "SAVE-sats vid %C följer allmän SAVE-sats"
+-msgstr "SAVE-sats vid %C följer allmän SAVE-sats"
++msgstr "IMPLICIT-sats vid %C följer en IMPLICIT NONE (type)-sats"
-#: fortran/decl.c:3160
+#: fortran/decl.c:3163
@@ -391476,18 +395052,22 @@ Index: gcc/po/sv.po
msgstr "Lista med namngivna entiteter förväntades vid %C"
-#: fortran/decl.c:3314
+-#, fuzzy, gcc-internal-format
+-#| msgid "Cannot IMPORT '%s' from host scoping unit at %C - does not exist."
+#: fortran/decl.c:3317
- #, fuzzy, gcc-internal-format
- #| msgid "Cannot IMPORT '%s' from host scoping unit at %C - does not exist."
++#, gcc-internal-format
msgid "Cannot IMPORT %qs from host scoping unit at %C - does not exist."
- msgstr "Det går inte att IMPORT:era ”%s” från värdräckviddsenhet vid %C - existerar inte."
+-msgstr "Det går inte att IMPORT:era ”%s” från värdräckviddsenhet vid %C - existerar inte."
++msgstr "Det går inte att IMPORT:era %qs från värdräckviddsenhet vid %C — finns inte."
-#: fortran/decl.c:3321
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' is already IMPORTed from host scoping unit at %C."
+#: fortran/decl.c:3324
- #, fuzzy, gcc-internal-format
- #| msgid "'%s' is already IMPORTed from host scoping unit at %C."
++#, gcc-internal-format
msgid "%qs is already IMPORTed from host scoping unit at %C"
- msgstr "”%s” är redan IMPORT:erad från värdräckviddsenhet vid %C."
+-msgstr "”%s” är redan IMPORT:erad från värdräckviddsenhet vid %C."
++msgstr "%qs är redan IMPORT:erad från värdräckviddsenhet vid %C."
-#: fortran/decl.c:3364
+#: fortran/decl.c:3367
@@ -391586,76 +395166,96 @@ Index: gcc/po/sv.po
msgstr "Flera identifierare angivna med en ensam NAME=-specificerare vid %C"
-#: fortran/decl.c:4059
+-#, fuzzy, gcc-internal-format
+-#| msgid "Implicitly declared BIND(C) function '%s' at %L may not be C interoperable"
+#: fortran/decl.c:4062
- #, fuzzy, gcc-internal-format
- #| msgid "Implicitly declared BIND(C) function '%s' at %L may not be C interoperable"
++#, gcc-internal-format
msgid "Implicitly declared BIND(C) function %qs at %L may not be C interoperable"
- msgstr "Implicit deklarerad BIND(C)-funktion ”%s” vid %L kan inte vara C-interoperativ"
+-msgstr "Implicit deklarerad BIND(C)-funktion ”%s” vid %L kan inte vara C-interoperativ"
++msgstr "Implicit deklarerad BIND(C)-funktion %qs vid %L kan inte vara C-interoperativ"
-#: fortran/decl.c:4081
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' in common block '%s' at %L may not be a C interoperable kind though common block '%s' is BIND(C)"
+#: fortran/decl.c:4084
- #, fuzzy, gcc-internal-format
- #| msgid "Variable '%s' in common block '%s' at %L may not be a C interoperable kind though common block '%s' is BIND(C)"
++#, gcc-internal-format
msgid "Variable %qs in common block %qs at %L may not be a C interoperable kind though common block %qs is BIND(C)"
- msgstr "Variabeln ”%s” i common-blocket ”%s” vid %L får inte vara en sort interoperativ med C men common-blocket ”%s” är BIND(C)"
+-msgstr "Variabeln ”%s” i common-blocket ”%s” vid %L får inte vara en sort interoperativ med C men common-blocket ”%s” är BIND(C)"
++msgstr "Variabeln %qs i common-blocket %qs vid %L får inte vara en sort interoperativ med C men common-blocket %qs är BIND(C)"
-#: fortran/decl.c:4090
+-#, fuzzy, gcc-internal-format
+-#| msgid "Type declaration '%s' at %L is not C interoperable but it is BIND(C)"
+#: fortran/decl.c:4093
- #, fuzzy, gcc-internal-format
- #| msgid "Type declaration '%s' at %L is not C interoperable but it is BIND(C)"
++#, gcc-internal-format
msgid "Type declaration %qs at %L is not C interoperable but it is BIND(C)"
- msgstr "Typdeklaration ”%s” vid %L är inte C-interoperativ men den är BIND(C)"
+-msgstr "Typdeklaration ”%s” vid %L är inte C-interoperativ men den är BIND(C)"
++msgstr "Typdeklaration %qs vid %L är inte C-interoperativ men den är BIND(C)"
-#: fortran/decl.c:4094
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L may not be a C interoperable kind but it is bind(c)"
+#: fortran/decl.c:4097
- #, fuzzy, gcc-internal-format
- #| msgid "Variable '%s' at %L may not be a C interoperable kind but it is bind(c)"
++#, gcc-internal-format
msgid "Variable %qs at %L may not be a C interoperable kind but it is BIND(C)"
- msgstr "Variabeln ”%s” vid %L får inte ha en C-interoperativ sort men den är bind(c)"
+-msgstr "Variabeln ”%s” vid %L får inte ha en C-interoperativ sort men den är bind(c)"
++msgstr "Variabeln %qs vid %L får inte ha en C-interoperativ sort men den är BIND(C)"
-#: fortran/decl.c:4106
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' in common block '%s' at %L cannot be declared with BIND(C) since it is not a global"
+#: fortran/decl.c:4109
- #, fuzzy, gcc-internal-format
- #| msgid "Variable '%s' in common block '%s' at %L cannot be declared with BIND(C) since it is not a global"
++#, gcc-internal-format
msgid "Variable %qs in common block %qs at %L cannot be declared with BIND(C) since it is not a global"
- msgstr "Variabeln ”%s” i common-blocket ”%s” vid %L får inte deklareras med BIND(C) eftersom den inte är en global"
+-msgstr "Variabeln ”%s” i common-blocket ”%s” vid %L får inte deklareras med BIND(C) eftersom den inte är en global"
++msgstr "Variabeln %qs i common-blocket %qs vid %L får inte deklareras med BIND(C) eftersom den inte är en global"
-#: fortran/decl.c:4120
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
+#: fortran/decl.c:4123
- #, fuzzy, gcc-internal-format
- #| msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
++#, gcc-internal-format
msgid "Variable %qs at %L cannot have both the POINTER and BIND(C) attributes"
- msgstr "Variabeln ”%s” vid %L får inte ha både attributet POINTER och BIND(C)"
+-msgstr "Variabeln ”%s” vid %L får inte ha både attributet POINTER och BIND(C)"
++msgstr "Variabeln %qs vid %L får inte ha både attributet POINTER och BIND(C)"
-#: fortran/decl.c:4128
+-#, fuzzy, gcc-internal-format
+-#| msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
+#: fortran/decl.c:4131
- #, fuzzy, gcc-internal-format
- #| msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
++#, gcc-internal-format
msgid "Variable %qs at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
- msgstr "Variabeln ”%s” vid %L får inte ha både attributet ALLOCATABLE och BIND(C)"
+-msgstr "Variabeln ”%s” vid %L får inte ha både attributet ALLOCATABLE och BIND(C)"
++msgstr "Variabeln %qs vid %L får inte ha både attributet ALLOCATABLE och BIND(C)"
-#: fortran/decl.c:4140
+-#, fuzzy, gcc-internal-format
+-#| msgid "Return type of BIND(C) function '%s' at %L cannot be an array"
+#: fortran/decl.c:4143
- #, fuzzy, gcc-internal-format
- #| msgid "Return type of BIND(C) function '%s' at %L cannot be an array"
++#, gcc-internal-format
msgid "Return type of BIND(C) function %qs at %L cannot be an array"
- msgstr "Returtyp till BIND(C)-funktion ”%s” vid %L kan inte vara en vektor"
+-msgstr "Returtyp till BIND(C)-funktion ”%s” vid %L kan inte vara en vektor"
++msgstr "Returtyp till BIND(C)-funktion %qs vid %L kan inte vara en vektor"
-#: fortran/decl.c:4148
+-#, fuzzy, gcc-internal-format
+-#| msgid "Return type of BIND(C) function '%s' at %L cannot be a character string"
+#: fortran/decl.c:4151
- #, fuzzy, gcc-internal-format
- #| msgid "Return type of BIND(C) function '%s' at %L cannot be a character string"
++#, gcc-internal-format
msgid "Return type of BIND(C) function %qs at %L cannot be a character string"
-@@ -44627,831 +44241,831 @@
+-msgstr "Returtyp till BIND(C)-funktion ”%s” vid %L kan inte vara en teckensträng"
++msgstr "Returtyp till BIND(C)-funktion %qs vid %L kan inte vara en teckensträng"
#. Use gfc_warning_now because we won't say that the symbol fails
#. just because of this.
-#: fortran/decl.c:4159
+-#, fuzzy, gcc-internal-format
+-#| msgid "Symbol '%s' at %L is marked PRIVATE but has been given the binding label '%s'"
+#: fortran/decl.c:4162
- #, fuzzy, gcc-internal-format
- #| msgid "Symbol '%s' at %L is marked PRIVATE but has been given the binding label '%s'"
++#, gcc-internal-format
msgid "Symbol %qs at %L is marked PRIVATE but has been given the binding label %qs"
- msgstr "Symbolen ”%s” vid %L är markerad PRIVATE men har getts bindningsetiketten ”%s”"
+-msgstr "Symbolen ”%s” vid %L är markerad PRIVATE men har getts bindningsetiketten ”%s”"
++msgstr "Symbolen %qs vid %L är markerad PRIVATE men har getts bindningsetiketten %qs"
-#: fortran/decl.c:4233
+#: fortran/decl.c:4236
@@ -391670,11 +395270,13 @@ Index: gcc/po/sv.po
msgstr "Entitets- eller common-blocknamn saknas till attributspecifikationssats vid %C"
-#: fortran/decl.c:4285
+-#, fuzzy, gcc-internal-format
+-#| msgid "missing number"
+#: fortran/decl.c:4288
- #, fuzzy, gcc-internal-format
- #| msgid "missing number"
++#, gcc-internal-format
msgid "Missing symbol"
- msgstr "tal saknas"
+-msgstr "tal saknas"
++msgstr "Symbol saknas"
-#: fortran/decl.c:4314
+#: fortran/decl.c:4317
@@ -391713,11 +395315,13 @@ Index: gcc/po/sv.po
msgstr "Alternativt returargument vid %C"
-#: fortran/decl.c:4623
+-#, fuzzy, gcc-internal-format
+-#| msgid "Name '%s' at %C is the name of the procedure"
+#: fortran/decl.c:4626
- #, fuzzy, gcc-internal-format
- #| msgid "Name '%s' at %C is the name of the procedure"
++#, gcc-internal-format
msgid "Name %qs at %C is the name of the procedure"
- msgstr "Namnet ”%s” vid %C är namnet på proceduren"
+-msgstr "Namnet ”%s” vid %C är namnet på proceduren"
++msgstr "Namnet %qs vid %C är namnet på proceduren"
-#: fortran/decl.c:4635
+#: fortran/decl.c:4638
@@ -391726,11 +395330,13 @@ Index: gcc/po/sv.po
msgstr "Oväntat skräp i formell argumentlista vid %C"
-#: fortran/decl.c:4652
+-#, fuzzy, gcc-internal-format
+-#| msgid "Duplicate symbol '%s' in formal argument list at %C"
+#: fortran/decl.c:4655
- #, fuzzy, gcc-internal-format
- #| msgid "Duplicate symbol '%s' in formal argument list at %C"
++#, gcc-internal-format
msgid "Duplicate symbol %qs in formal argument list at %C"
- msgstr "Dubblerad symbol ”%s” i formell argumentlista vid %C"
+-msgstr "Dubblerad symbol ”%s” i formell argumentlista vid %C"
++msgstr "Dubblerad symbol %qs i formell argumentlista vid %C"
-#: fortran/decl.c:4702
+#: fortran/decl.c:4705
@@ -391769,11 +395375,13 @@ Index: gcc/po/sv.po
msgstr "Attrapprocedur vid %C kan inte ha attributet BIND(c) tillsammans med NAME"
-#: fortran/decl.c:5027
+-#, fuzzy, gcc-internal-format
+-#| msgid "Procedure '%s' at %L already has basic type of %s"
+#: fortran/decl.c:5030
- #, fuzzy, gcc-internal-format
- #| msgid "Procedure '%s' at %L already has basic type of %s"
++#, gcc-internal-format
msgid "Procedure %qs at %L already has basic type of %s"
- msgstr "Procedur ”%s” vid %L har redan en grundtyp %s"
+-msgstr "Procedur ”%s” vid %L har redan en grundtyp %s"
++msgstr "Proceduren %qs vid %L har redan en grundtyp %s"
-#: fortran/decl.c:5073 fortran/decl.c:5261 fortran/decl.c:8438
+#: fortran/decl.c:5076 fortran/decl.c:5264 fortran/decl.c:8441
@@ -391782,11 +395390,13 @@ Index: gcc/po/sv.po
msgstr "Syntaxfel i PROCEDURE-sats vid %C"
-#: fortran/decl.c:5122 fortran/decl.c:8340
+-#, fuzzy, gcc-internal-format
+-#| msgid "Expected '::' after binding-attributes at %C"
+#: fortran/decl.c:5125 fortran/decl.c:8343
- #, fuzzy, gcc-internal-format
- #| msgid "Expected '::' after binding-attributes at %C"
++#, gcc-internal-format
msgid "Expected %<::%> after binding-attributes at %C"
- msgstr "”::” förväntades efter bindningsattribut vid %C"
+-msgstr "”::” förväntades efter bindningsattribut vid %C"
++msgstr "%<::%> förväntades efter bindningsattribut vid %C"
-#: fortran/decl.c:5129
+#: fortran/decl.c:5132
@@ -391912,11 +395522,13 @@ Index: gcc/po/sv.po
msgstr "ENTRY-sats vid %C kan inte förekomma inuti ett inneslutet underprogram"
-#: fortran/decl.c:5594
+-#, fuzzy, gcc-internal-format
+-#| msgid "gfc_trans_code(): Bad statement code"
+#: fortran/decl.c:5597
- #, fuzzy, gcc-internal-format
- #| msgid "gfc_trans_code(): Bad statement code"
++#, gcc-internal-format
msgid "gfc_match_entry(): Bad state"
- msgstr "gfc_trans_code(): Felaktig satskod"
+-msgstr "gfc_trans_code(): Felaktig satskod"
++msgstr "gfc_match_entry(): Felaktigt tillstånd"
-#: fortran/decl.c:5608
+#: fortran/decl.c:5611
@@ -391931,11 +395543,13 @@ Index: gcc/po/sv.po
msgstr "Nödvändig parentes saknas före BIND(C) vid %C"
-#: fortran/decl.c:5919 fortran/decl.c:5926
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "Invalid C name in NAME= specifier at %C"
+#: fortran/decl.c:5922 fortran/decl.c:5929
- #, fuzzy, gcc-internal-format, gfc-internal-format
- #| msgid "Invalid C name in NAME= specifier at %C"
++#, gcc-internal-format, gfc-internal-format
msgid "Invalid C identifier in NAME= specifier at %C"
- msgstr "Ogiltigt C-namn i NAME=-specificerare vid %C"
+-msgstr "Ogiltigt C-namn i NAME=-specificerare vid %C"
++msgstr "Ogiltig C-identifierare i NAME=-specificerare vid %C"
-#: fortran/decl.c:5966
+#: fortran/decl.c:5969
@@ -391944,11 +395558,13 @@ Index: gcc/po/sv.po
msgstr "Syntaxfel i NAME=-specifikation för att binda etikett vid %C"
-#: fortran/decl.c:5982
+-#, fuzzy, gcc-internal-format, gfc-internal-format
+-#| msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
+#: fortran/decl.c:5985
- #, fuzzy, gcc-internal-format, gfc-internal-format
- #| msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
++#, gcc-internal-format, gfc-internal-format
msgid "NAME= specifier at %C should be a constant expression"
- msgstr "ASYNCHRONOUS=-specificerare vid %L måste vara ett initieringsuttryck"
+-msgstr "ASYNCHRONOUS=-specificerare vid %L måste vara ett initieringsuttryck"
++msgstr "NAME=-specificerare vid %C skall vara ett konstant uttryck"
-#: fortran/decl.c:5990
+#: fortran/decl.c:5993
@@ -392006,11 +395622,13 @@ Index: gcc/po/sv.po
msgstr "%s-sats förväntades vid %L"
-#: fortran/decl.c:6303
+-#, fuzzy, gcc-internal-format
+-#| msgid "Expected block name of '%s' in %s statement at %L"
+#: fortran/decl.c:6306
- #, fuzzy, gcc-internal-format
- #| msgid "Expected block name of '%s' in %s statement at %L"
++#, gcc-internal-format
msgid "Expected block name of %qs in %s statement at %L"
- msgstr "Blocknamn på ”%s” i %s-sats förväntades vid %L"
+-msgstr "Blocknamn på ”%s” i %s-sats förväntades vid %L"
++msgstr "Blocknamn på %qs i %s-sats förväntades vid %L"
-#: fortran/decl.c:6320
+#: fortran/decl.c:6323
@@ -392019,11 +395637,13 @@ Index: gcc/po/sv.po
msgstr "Avslutande namn förväntades vid %C"
-#: fortran/decl.c:6329 fortran/decl.c:6337
+-#, fuzzy, gcc-internal-format
+-#| msgid "Expected label '%s' for %s statement at %C"
+#: fortran/decl.c:6332 fortran/decl.c:6340
- #, fuzzy, gcc-internal-format
- #| msgid "Expected label '%s' for %s statement at %C"
++#, gcc-internal-format
msgid "Expected label %qs for %s statement at %C"
- msgstr "Etikett ”%s” för %s-sats förväntades vid %C"
+-msgstr "Etikett ”%s” för %s-sats förväntades vid %C"
++msgstr "Etikett %qs för %s-sats förväntades vid %C"
-#: fortran/decl.c:6434
+#: fortran/decl.c:6437
@@ -392056,11 +395676,13 @@ Index: gcc/po/sv.po
msgstr "Oväntat tecken i variabellista vid %C"
-#: fortran/decl.c:6594
+-#, fuzzy, gcc-internal-format
+-#| msgid "Expected '(' at %C"
+#: fortran/decl.c:6597
- #, fuzzy, gcc-internal-format
- #| msgid "Expected '(' at %C"
++#, gcc-internal-format
msgid "Expected %<(%> at %C"
- msgstr "”(” förväntades vid %C"
+-msgstr "”(” förväntades vid %C"
++msgstr "%<(%> förväntades vid %C"
-#: fortran/decl.c:6608 fortran/decl.c:6648
+#: fortran/decl.c:6611 fortran/decl.c:6651
@@ -392099,11 +395721,13 @@ Index: gcc/po/sv.po
msgstr "”)” förväntades vid %C"
-#: fortran/decl.c:6709
+-#, fuzzy, gcc-internal-format
+-#| msgid "Expected \",\" or end of statement at %C"
+#: fortran/decl.c:6712
- #, fuzzy, gcc-internal-format
- #| msgid "Expected \",\" or end of statement at %C"
++#, gcc-internal-format
msgid "Expected %<,%> or end of statement at %C"
- msgstr "”,” ellerslut på sats förväntades vid %C"
+-msgstr "”,” ellerslut på sats förväntades vid %C"
++msgstr "%<,%> ellerslut på sats förväntades vid %C"
-#: fortran/decl.c:6735
+#: fortran/decl.c:6738
@@ -392238,11 +395862,13 @@ Index: gcc/po/sv.po
msgstr "VOLATILE-sats vid %C"
-#: fortran/decl.c:7344
+-#, fuzzy, gcc-internal-format
+-#| msgid "Specifying VOLATILE for coarray variable '%s' at %C, which is use-/host-associated"
+#: fortran/decl.c:7347
- #, fuzzy, gcc-internal-format
- #| msgid "Specifying VOLATILE for coarray variable '%s' at %C, which is use-/host-associated"
++#, gcc-internal-format
msgid "Specifying VOLATILE for coarray variable %qs at %C, which is use-/host-associated"
- msgstr "VOLATILE anges för co-vektorvariabel ”%s” vid %C, vilket är use-/host-associerat"
+-msgstr "VOLATILE anges för co-vektorvariabel ”%s” vid %C, vilket är use-/host-associerat"
++msgstr "VOLATILE anges för co-vektorvariabel %qs vid %C, vilket är use-/host-associerat"
-#: fortran/decl.c:7369
+#: fortran/decl.c:7372
@@ -392281,32 +395907,40 @@ Index: gcc/po/sv.po
msgstr "Tvetydig symbol i TYPE-definition vid %C"
-#: fortran/decl.c:7560
+-#, fuzzy, gcc-internal-format
+-#| msgid "Symbol '%s' at %C has not been previously defined"
+#: fortran/decl.c:7563
- #, fuzzy, gcc-internal-format
- #| msgid "Symbol '%s' at %C has not been previously defined"
++#, gcc-internal-format
msgid "Symbol %qs at %C has not been previously defined"
- msgstr "Symbolen ”%s” vid %C har inte definierats tidigare"
+-msgstr "Symbolen ”%s” vid %C har inte definierats tidigare"
++msgstr "Symbolen %qs vid %C har inte definierats tidigare"
-#: fortran/decl.c:7566
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' in EXTENDS expression at %C is not a derived type"
+#: fortran/decl.c:7569
- #, fuzzy, gcc-internal-format
- #| msgid "'%s' in EXTENDS expression at %C is not a derived type"
++#, gcc-internal-format
msgid "%qs in EXTENDS expression at %C is not a derived type"
- msgstr "”%s” i EXTENDS-uttryck vid %C är inte en härledd typ"
+-msgstr "”%s” i EXTENDS-uttryck vid %C är inte en härledd typ"
++msgstr "%qs i EXTENDS-uttryck vid %C är inte en härledd typ"
-#: fortran/decl.c:7573
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' cannot be extended at %C because it is BIND(C)"
+#: fortran/decl.c:7576
- #, fuzzy, gcc-internal-format
- #| msgid "'%s' cannot be extended at %C because it is BIND(C)"
++#, gcc-internal-format
msgid "%qs cannot be extended at %C because it is BIND(C)"
- msgstr "”%s” kan inte utökas vid %C för att den är BIND(C)"
+-msgstr "”%s” kan inte utökas vid %C för att den är BIND(C)"
++msgstr "%qs kan inte utökas vid %C för att den är BIND(C)"
-#: fortran/decl.c:7580
+-#, fuzzy, gcc-internal-format
+-#| msgid "'%s' cannot be extended at %C because it is a SEQUENCE type"
+#: fortran/decl.c:7583
- #, fuzzy, gcc-internal-format
- #| msgid "'%s' cannot be extended at %C because it is a SEQUENCE type"
++#, gcc-internal-format
msgid "%qs cannot be extended at %C because it is a SEQUENCE type"
- msgstr "”%s” kan inte utökas vid %C eftersom det är en SEQUENCE-typ"
+-msgstr "”%s” kan inte utökas vid %C eftersom det är en SEQUENCE-typ"
++msgstr "%qs kan inte utökas vid %C eftersom det är en SEQUENCE-typ"
-#: fortran/decl.c:7603
+#: fortran/decl.c:7606
@@ -392637,7 +396271,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
msgstr "Syntaxfel i !GCC$ ATTRIBUTES-sats vid %C"
-@@ -45788,30 +45402,30 @@
+@@ -45788,30 +45262,30 @@
msgid "BOZ literal at %L used to initialize non-integer variable %qs"
msgstr "BOZ-literal vid %L används för att initiera icke-heltalsvariabeln ”%s”"
@@ -392673,7 +396307,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option %<-fno-range-check%>"
-@@ -45929,7 +45543,7 @@
+@@ -45929,7 +45403,7 @@
msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
msgstr "Det stämmer inte i procedurpekartilldelningen vid %L: anropskonventionen stämmer inte"
@@ -392682,7 +396316,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "Explicit interface required for '%s' at %L: %s"
msgid "Explicit interface required for %qs at %L: %s"
-@@ -46025,7 +45639,7 @@
+@@ -46025,7 +45499,7 @@
msgid "Pointer initialization target at %L must have the TARGET attribute"
msgstr "Målet för perkarinitieringen vid %L måste ha attributet TARGET"
@@ -392691,7 +396325,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization target at %L must have the SAVE attribute"
msgstr "Pekarinitieringsmål vid %L måste ha attributet SAVE"
-@@ -46035,86 +45649,86 @@
+@@ -46035,86 +45509,86 @@
msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
msgstr "Procedurpekarinitieringsmål vid %L får inte vara en procedurpekare"
@@ -392793,7 +396427,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
msgstr "Element med samma värde vid %L och %L i vektorindex i ett variabeldefinitionssammanhang (%s)"
-@@ -46130,8 +45744,8 @@
+@@ -46130,8 +45604,8 @@
msgstr "Ottilåtet id i copy_walk_reduction_arg"
#: fortran/frontend-passes.c:658 fortran/trans-array.c:1057
@@ -392804,7 +396438,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Creating array temporary at %L"
msgstr "Skapar vektortemporär vid %L"
-@@ -46278,12 +45892,12 @@
+@@ -46278,12 +45752,12 @@
msgid "Second argument of defined assignment at %L must be INTENT(IN)"
msgstr "Andra argumentet av definierad tilldelning vid %L måste vara INTENT(IN)"
@@ -392819,7 +396453,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of operator interface at %L must be INTENT(IN)"
msgstr "Andra argumentet till operatorgränssnitt vid %L måste vara INTENT(IN)"
-@@ -47488,7 +47102,7 @@
+@@ -47488,7 +46962,7 @@
msgstr "Förväntade uttryck i %s-sats vid %C"
#. A general purpose syntax error.
@@ -392828,7 +396462,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in %s statement at %C"
msgstr "Syntaxfel i %s-sats vid %C"
-@@ -48459,202 +48073,202 @@
+@@ -48459,202 +47933,202 @@
msgid "unquote_string(): got bad string"
msgstr "unquote_string(): fick en felaktig sträng"
@@ -393067,7 +396701,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format
msgid "Can't USE the same module we're building!"
msgstr "Det går inta att USE samma modul vi bygger!"
-@@ -48980,7 +48594,7 @@
+@@ -48980,7 +48454,7 @@
msgid "Implicitly declared subroutine %s used in !$OMP DECLARE REDUCTION at %L "
msgstr "Den implicit deklarede subrutinen %s används i !$OMP DECLARE REDUCTION vid %L "
@@ -393076,7 +396710,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "IF clause at %L requires a scalar LOGICAL expression"
msgstr "IF-klausul vid %L kräver ett skalärt LOGICAL-uttryck"
-@@ -49556,118 +49170,118 @@
+@@ -49556,118 +49030,118 @@
msgid "Missing INITIALIZER clause for !$OMP DECLARE REDUCTION of derived type without default initializer at %L"
msgstr "INITIALIZER-klausul saknas i !$OMP DECLARE REDUCTION av härledd typ utan standardinitierare vid %L"
@@ -393215,7 +396849,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "The value of n in -finit-character=n must be between 0 and 127"
msgid "The value of n in %<-finit-character=n%> must be between 0 and 127"
-@@ -50409,115 +50023,115 @@
+@@ -50409,115 +49883,115 @@
msgid "gfc_variable_attr(): Expression isn't a variable"
msgstr "variabelsymbol är inte en variabel"
@@ -393351,7 +396985,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "'%s' at %C is not a variable"
msgid "%qs at %C is not a variable"
-@@ -50816,245 +50430,245 @@
+@@ -50816,245 +50290,245 @@
msgid "COMMON block %qs at %L that is also a global procedure"
msgstr "COMMON-block ”%s” vid %L som också är en global procedur"
@@ -393639,7 +397273,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "ABSTRACT INTERFACE '%s' must not be referenced at %L"
msgid "ABSTRACT INTERFACE %qs must not be referenced at %L"
-@@ -51061,299 +50675,299 @@
+@@ -51061,299 +50535,299 @@
msgstr "ABSTRACT INTERFACE ”%s” får inte refereras vid %L"
#. Internal procedures are taken care of in resolve_contained_fntype.
@@ -393995,7 +397629,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-type variable %s at %L may only be used as actual argument"
msgstr "Variabeln %s med antagen typ vid %L får bara användas som ett aktuellt argument"
-@@ -51362,12 +50976,12 @@
+@@ -51362,12 +50836,12 @@
#. for all inquiry functions in resolve_function; the reason is
#. that the function-name resolution happens too late in that
#. function.
@@ -394010,7 +397644,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-rank variable %s at %L may only be used as actual argument"
msgstr "Variabeln %s med antagen ordning vid %L kan bara användas som ett aktuellt argument"
-@@ -51376,259 +50990,259 @@
+@@ -51376,259 +50850,259 @@
#. for all inquiry functions in resolve_function; the reason is
#. that the function-name resolution happens too late in that
#. function.
@@ -394319,7 +397953,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Allocate-object at %L is subobject of object at %L"
msgstr "Allokeringsobjekt vid %L är underobjet till objekt vid %L"
-@@ -51637,192 +51251,192 @@
+@@ -51637,192 +51111,192 @@
#. element in the list. Either way, we must
#. issue an error and get the next case from P.
#. FIXME: Sort P and Q by line number.
@@ -394549,7 +398183,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Branch at %L may result in an infinite loop"
msgstr "Gren vid %L kan orsaka en oändlig slinga"
-@@ -51829,12 +51443,12 @@
+@@ -51829,12 +51303,12 @@
#. Note: A label at END CRITICAL does not leave the CRITICAL
#. construct as END CRITICAL is still part of it.
@@ -394564,7 +398198,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
msgstr "GOTO-sats vid %L lämnar DO CONCURRENT-konstruktion för etikett vid %L"
-@@ -51842,88 +51456,88 @@
+@@ -51842,88 +51316,88 @@
#. The label is not in an enclosing block, so illegal. This was
#. allowed in Fortran 66, so we allow it as extension. No
#. further checks are necessary in this case.
@@ -394670,7 +398304,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "Assignment to an allocatable polymorphic variable at %L requires -frealloc-lhs"
msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
-@@ -51930,75 +51544,75 @@
+@@ -51930,75 +51404,75 @@
msgstr "Tilldelning till en allokerbar polymorf variabel vid %L kräver -frealloc-lhs"
#. See PR 43366.
@@ -394760,7 +398394,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Variable %s with binding label %s at %L uses the same global identifier as entity at %L"
msgstr "Variabeln %s med bindningsetiketten ”%s” vid %L använder samma globala identifierare som en enhet vid %L"
-@@ -52005,7 +51619,7 @@
+@@ -52005,7 +51479,7 @@
#. This can only happen if the variable is defined in a module - if it
#. isn't the same module, reject it.
@@ -394769,7 +398403,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Variable %s from module %s with binding label %s at %L uses the same global identifier as entity at %L from module %s"
msgstr "Variabeln %s från modulen %s med bindningsetikett %s vid %L använder samma globala identifierare som enheten vid %L från modulen %s"
-@@ -52013,63 +51627,63 @@
+@@ -52013,63 +51487,63 @@
#. Print an error if the procedure is defined multiple times; we have to
#. exclude references to the same procedure via module association or
#. multiple checks for the same procedure.
@@ -394844,7 +398478,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "Implied SAVE for module variable '%s' at %L, needed due to the default initialization"
msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
-@@ -52077,492 +51691,492 @@
+@@ -52077,492 +51551,492 @@
#. The shape of a main program or module array needs to be
#. constant.
@@ -395421,7 +399055,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER components"
msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
-@@ -52570,440 +52184,440 @@
+@@ -52570,440 +52044,440 @@
#. FIXME: Once UDDTIO is implemented, the following can be
#. removed.
@@ -395941,7 +399575,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
-@@ -53038,49 +52652,49 @@
+@@ -53038,49 +52512,49 @@
msgid "!$OMP at %C starts a commented line as it neither is followed by a space nor is a continuation line"
msgstr "!$OMP vid %C inleder en kommentarrad eftersom det varken följs av en blank eller en fortsättningsrad"
@@ -396000,7 +399634,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "Can't open file '%s'"
msgid "Can't open file %qs"
-@@ -53219,12 +52833,12 @@
+@@ -53219,12 +52693,12 @@
#: fortran/simplify.c:2184
#, gcc-internal-format
msgid "in gfc_simplify_exp(): Bad type"
@@ -396015,7 +399649,7 @@ Index: gcc/po/sv.po
#: fortran/simplify.c:2502
#, gcc-internal-format, gfc-internal-format
-@@ -53244,7 +52858,7 @@
+@@ -53244,7 +52718,7 @@
#: fortran/simplify.c:2649
#, gcc-internal-format
msgid "IBITS: Bad bit"
@@ -396024,7 +399658,7 @@ Index: gcc/po/sv.po
#: fortran/simplify.c:2700
#, gcc-internal-format, gfc-internal-format
-@@ -53285,7 +52899,7 @@
+@@ -53285,7 +52759,7 @@
#: fortran/simplify.c:3852
#, gcc-internal-format
msgid "gfc_simplify_log: bad type"
@@ -396033,7 +399667,7 @@ Index: gcc/po/sv.po
#: fortran/simplify.c:3869
#, gcc-internal-format, gfc-internal-format
-@@ -53295,7 +52909,7 @@
+@@ -53295,7 +52769,7 @@
#: fortran/simplify.c:4172
#, gcc-internal-format
msgid "simplify_min_max(): Bad type in arglist"
@@ -396042,7 +399676,7 @@ Index: gcc/po/sv.po
#. Result is processor-dependent.
#: fortran/simplify.c:4348
-@@ -53326,7 +52940,7 @@
+@@ -53326,7 +52800,7 @@
#: fortran/simplify.c:4428
#, gcc-internal-format
msgid "gfc_simplify_modulo(): Bad arguments"
@@ -396051,7 +399685,7 @@ Index: gcc/po/sv.po
#: fortran/simplify.c:4488
#, gcc-internal-format, gfc-internal-format
-@@ -53363,12 +52977,12 @@
+@@ -53363,12 +52837,12 @@
#: fortran/simplify.c:5969
#, gcc-internal-format
msgid "in gfc_simplify_sin(): Bad type"
@@ -396066,7 +399700,7 @@ Index: gcc/po/sv.po
#: fortran/simplify.c:6184
#, gcc-internal-format, gfc-internal-format
-@@ -53434,17 +53048,17 @@
+@@ -53434,17 +52908,17 @@
#: fortran/symbol.c:224
#, gcc-internal-format
msgid "Option %<-fallow-leading-underscore%> is for use only by gfortran developers, and should not be used for implicitly typed variables"
@@ -396087,7 +399721,7 @@ Index: gcc/po/sv.po
#: fortran/symbol.c:256
#, fuzzy, gcc-internal-format
-@@ -53735,7 +53349,7 @@
+@@ -53735,7 +53209,7 @@
#: fortran/symbol.c:2607
#, gcc-internal-format
msgid "new_symbol(): Symbol name too long"
@@ -396096,7 +399730,7 @@ Index: gcc/po/sv.po
#: fortran/symbol.c:2631
#, fuzzy, gcc-internal-format
-@@ -53760,7 +53374,7 @@
+@@ -53760,7 +53234,7 @@
#: fortran/symbol.c:3846
#, gcc-internal-format
msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
@@ -396105,7 +399739,7 @@ Index: gcc/po/sv.po
#: fortran/symbol.c:3859
#, fuzzy, gcc-internal-format
-@@ -53828,12 +53442,12 @@
+@@ -53828,12 +53302,12 @@
#: fortran/target-memory.c:356
#, gcc-internal-format
msgid "Invalid expression in gfc_target_encode_expr."
@@ -396120,7 +399754,7 @@ Index: gcc/po/sv.po
#: fortran/target-memory.c:691
#, gcc-internal-format, gfc-internal-format
-@@ -53847,19 +53461,19 @@
+@@ -53847,19 +53321,19 @@
#. Problems occur when we get something like
#. integer :: a(lots) = (/(i, i=1, lots)/)
@@ -396143,7 +399777,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "bad expression type during walk (%d)"
msgstr "felaktig uttryckstyp under genomlöpning (%d)"
-@@ -53879,7 +53493,7 @@
+@@ -53879,7 +53353,7 @@
#: fortran/trans-common.c:811
#, gcc-internal-format
msgid "element_number(): Bad dimension type"
@@ -396152,7 +399786,7 @@ Index: gcc/po/sv.po
#: fortran/trans-common.c:873
#, gcc-internal-format, gfc-internal-format
-@@ -53959,103 +53573,120 @@
+@@ -53959,103 +53433,120 @@
msgid "non-constant initialization expression at %L"
msgstr "ej konstant initieringsuttryck vid %L"
@@ -396292,7 +399926,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format, gfc-internal-format
msgid "Unknown argument list function at %L"
msgstr "Okänd argumentlistefunktion vid %L"
-@@ -54084,7 +53715,7 @@
+@@ -54084,7 +53575,7 @@
msgid "Bad IO basetype (%d)"
msgstr "Felaktig IO-bastyp (%d)"
@@ -396301,7 +399935,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format
msgid "gfc_trans_omp_workshare(): Bad statement code"
msgstr "gfc_trans_omp_workshare(): Felaktig satskod"
-@@ -54094,12 +53725,18 @@
+@@ -54094,12 +53585,18 @@
msgid "An alternate return at %L without a * dummy argument"
msgstr "En alternativ retur vid %L utan ett * attrappargument"
@@ -396322,7 +399956,7 @@ Index: gcc/po/sv.po
#, fuzzy, gcc-internal-format
#| msgid "gfc_trans_code(): Bad statement code"
msgid "gfc_trans_select(): Bad type for case expr."
-@@ -54168,12 +53805,12 @@
+@@ -54168,12 +53665,12 @@
#: fortran/trans-types.c:743
#, gcc-internal-format
msgid "gfc_validate_kind(): Got bad type"
@@ -396337,7 +399971,7 @@ Index: gcc/po/sv.po
#: fortran/trans-types.c:1473
#, gcc-internal-format, gfc-internal-format
-@@ -54180,7 +53817,7 @@
+@@ -54180,7 +53677,7 @@
msgid "Array element size too big at %C"
msgstr "Vektorelementstorlek är för stor vid %C"
@@ -396346,7 +399980,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format
msgid "gfc_trans_code(): Bad statement code"
msgstr "gfc_trans_code(): Felaktig satskod"
-@@ -54519,7 +54156,7 @@
+@@ -54519,7 +54016,7 @@
msgid "unable to open file"
msgstr "det gick inte att öppna %s"
@@ -396355,7 +399989,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format
msgid "-fwpa and -fltrans are mutually exclusive"
msgstr "-fwpa och -fltrans är ömsesidigt uteslutande"
-@@ -54550,166 +54187,165 @@
+@@ -54550,166 +54047,165 @@
msgid "two or more sections for %s"
msgstr "två eller flera sektioner för %s"
@@ -396557,7 +400191,7 @@ Index: gcc/po/sv.po
#, gcc-internal-format
msgid "errors during merging of translation units"
msgstr "fel vid sammanslagning av översättningsenheter"
-@@ -55645,6 +55281,21 @@
+@@ -55645,6 +55141,21 @@
msgid "creating selector for nonexistent method %qE"
msgstr "skapar selektor för icke existerande metod %qE"
@@ -396579,7 +400213,7 @@ Index: gcc/po/sv.po
#~ msgid "%s:%d:%d: Invalid state file; %s"
#~ msgstr "%s:%d:%d: Felaktig tillståndsfil; %s"
-@@ -56226,6 +55877,3 @@
+@@ -56226,6 +55737,3 @@
#~ msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE procedure"
#~ msgstr "Funktionsreferens till ”%s” vid %L är till en icke-PURE-procedur inuti en PURE-procedur"
@@ -632275,6 +635909,22 @@ Index: gcc/config/i386/sse.md
(parallel [(const_int 0) (const_int 2)
(const_int 4) (const_int 6)])))
(sign_extend:V4DI
+@@ -13161,10 +13161,12 @@
+ (set_attr "atom_sse_attr" "fence")
+ (set_attr "memory" "unknown")])
+
+-
++;; As per AMD and Intel ISA manuals, the first operand is extensions
++;; and it goes to %ecx. The second operand received is hints and it goes
++;; to %eax.
+ (define_insn "sse3_mwait"
+- [(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
+- (match_operand:SI 1 "register_operand" "c")]
++ [(unspec_volatile [(match_operand:SI 0 "register_operand" "c")
++ (match_operand:SI 1 "register_operand" "a")]
+ UNSPECV_MWAIT)]
+ "TARGET_SSE3"
+ ;; 64bit version is "mwait %rax,%rcx". But only lower 32bits are used.
Index: gcc/config/i386/i386.c
===================================================================
--- a/src/gcc/config/i386/i386.c (.../tags/gcc_5_1_0_release)
@@ -632330,7 +635980,37 @@ Index: gcc/config/i386/i386.c
return TARGET_SSE2_P (target_opts_for_fn (target->decl)
->x_ix86_isa_flags) ? 2 : 1;
}
-@@ -6479,6 +6492,7 @@
+@@ -6118,6 +6131,7 @@
+ ix86_function_arg_regno_p (int regno)
+ {
+ int i;
++ enum calling_abi call_abi;
+ const int *parm_regs;
+
+ if (TARGET_MPX && BND_REGNO_P (regno))
+@@ -6143,16 +6157,18 @@
+ /* TODO: The function should depend on current function ABI but
+ builtins.c would need updating then. Therefore we use the
+ default ABI. */
++ call_abi = ix86_cfun_abi ();
+
+ /* RAX is used as hidden argument to va_arg functions. */
+- if (ix86_abi == SYSV_ABI && regno == AX_REG)
++ if (call_abi == SYSV_ABI && regno == AX_REG)
+ return true;
+
+- if (ix86_abi == MS_ABI)
++ if (call_abi == MS_ABI)
+ parm_regs = x86_64_ms_abi_int_parameter_registers;
+ else
+ parm_regs = x86_64_int_parameter_registers;
+- for (i = 0; i < (ix86_abi == MS_ABI
++
++ for (i = 0; i < (call_abi == MS_ABI
+ ? X86_64_MS_REGPARM_MAX : X86_64_REGPARM_MAX); i++)
+ if (regno == parm_regs[i])
+ return true;
+@@ -6479,6 +6495,7 @@
cum->bnd_regno = FIRST_BND_REG;
cum->bnds_in_bt = 0;
cum->force_bnd_pass = 0;
@@ -632338,7 +636018,7 @@ Index: gcc/config/i386/i386.c
if (!TARGET_64BIT)
{
-@@ -7424,6 +7438,7 @@
+@@ -7424,6 +7441,7 @@
HOST_WIDE_INT words)
{
int res = 0;
@@ -632346,7 +636026,7 @@ Index: gcc/config/i386/i386.c
switch (mode)
{
-@@ -7456,9 +7471,13 @@
+@@ -7456,9 +7474,13 @@
gcc_unreachable ();
case DFmode:
@@ -632360,7 +636040,7 @@ Index: gcc/config/i386/i386.c
if (cum->float_in_sse < 1)
break;
/* FALLTHRU */
-@@ -7514,6 +7533,14 @@
+@@ -7514,6 +7536,14 @@
}
break;
}
@@ -632375,7 +636055,7 @@ Index: gcc/config/i386/i386.c
return res;
}
-@@ -7646,10 +7673,11 @@
+@@ -7646,10 +7676,11 @@
(otherwise it is an extra parameter matching an ellipsis). */
static rtx
@@ -632388,7 +636068,7 @@ Index: gcc/config/i386/i386.c
/* Avoid the AL settings for the Unix64 ABI. */
if (mode == VOIDmode)
return constm1_rtx;
-@@ -7690,9 +7718,13 @@
+@@ -7690,9 +7721,13 @@
break;
case DFmode:
@@ -632402,7 +636082,7 @@ Index: gcc/config/i386/i386.c
if (cum->float_in_sse < 1)
break;
/* FALLTHRU */
-@@ -7751,6 +7783,14 @@
+@@ -7751,6 +7786,14 @@
}
break;
}
@@ -632417,7 +636097,29 @@ Index: gcc/config/i386/i386.c
return NULL_RTX;
}
-@@ -8230,8 +8270,15 @@
+@@ -8154,10 +8197,10 @@
+ case AX_REG:
+ return true;
+ case DX_REG:
+- return (!TARGET_64BIT || ix86_abi != MS_ABI);
++ return (!TARGET_64BIT || ix86_cfun_abi () != MS_ABI);
+ case DI_REG:
+ case SI_REG:
+- return TARGET_64BIT && ix86_abi != MS_ABI;
++ return TARGET_64BIT && ix86_cfun_abi () != MS_ABI;
+
+ case FIRST_BND_REG:
+ return chkp_function_instrumented_p (current_function_decl);
+@@ -8168,7 +8211,7 @@
+ /* TODO: The function should depend on current function ABI but
+ builtins.c would need updating then. Therefore we use the
+ default ABI. */
+- if (TARGET_64BIT && ix86_abi == MS_ABI)
++ if (TARGET_64BIT && ix86_cfun_abi () == MS_ABI)
+ return false;
+ return TARGET_FLOAT_RETURNS_IN_80387;
+
+@@ -8230,8 +8273,15 @@
if ((fn || fntype) && (mode == SFmode || mode == DFmode))
{
int sse_level = ix86_function_sseregparm (fntype, fn, false);
@@ -632435,7 +636137,7 @@ Index: gcc/config/i386/i386.c
regno = FIRST_SSE_REG;
}
-@@ -46892,15 +46939,16 @@
+@@ -46892,15 +46942,16 @@
static bool
expand_vec_perm_blend (struct expand_vec_perm_d *d)
{
@@ -632455,7 +636157,7 @@ Index: gcc/config/i386/i386.c
;
else if (TARGET_AVX2 && GET_MODE_SIZE (vmode) == 32)
;
-@@ -47074,8 +47122,33 @@
+@@ -47074,8 +47125,33 @@
gcc_unreachable ();
}
@@ -632490,7 +636192,7 @@ Index: gcc/config/i386/i386.c
x = gen_rtx_SET (VOIDmode, target, x);
emit_insn (x);
if (target != d->target)
-@@ -51606,7 +51679,7 @@
+@@ -51606,7 +51682,7 @@
for (i = 0; i < loop->num_nodes; i++)
FOR_BB_INSNS (bbs[i], insn)
if (NONDEBUG_INSN_P (insn))
@@ -634115,6 +637817,177 @@ Index: gcc/config/arm/arm.md
rc = reverse_condition (rc);
else
std::swap (operands[1], operands[2]);
+Index: gcc/config/pa/pa-hpux10.h
+===================================================================
+--- a/src/gcc/config/pa/pa-hpux10.h (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/config/pa/pa-hpux10.h (.../branches/gcc-5-branch)
+@@ -24,7 +24,9 @@
+ the definition of __cplusplus. We define _INCLUDE_LONGLONG
+ to prevent nlist.h from defining __STDC_32_MODE__ (no longlong
+ support). We define __STDCPP__ to get certain system headers
+- (notably assert.h) to assume standard preprocessor behavior in C++. */
++ (notably assert.h) to assume standard preprocessor behavior in C++.
++ We define _XOPEN_SOURCE_EXTENDED when we define _HPUX_SOURCE to avoid
++ non standard hpux variants in _INCLUDE_XOPEN_SOURCE_EXTENDED. */
+ #undef TARGET_OS_CPP_BUILTINS
+ #define TARGET_OS_CPP_BUILTINS() \
+ do \
+@@ -44,9 +46,21 @@
+ builtin_define ("_REENTRANT"); \
+ builtin_define ("_INCLUDE_LONGLONG"); \
+ builtin_define ("__STDCPP__"); \
++ builtin_define ("_LARGEFILE_SOURCE"); \
++ builtin_define ("_LARGEFILE64_SOURCE"); \
++ if (flag_pa_unix >= 1995) \
++ { \
++ builtin_define ("_XOPEN_UNIX"); \
++ builtin_define ("_XOPEN_SOURCE_EXTENDED"); \
++ } \
+ } \
+- else if (!flag_iso) \
++ else if (flag_iso) \
+ { \
++ if (flag_isoc94) \
++ builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
++ } \
++ else \
++ { \
+ builtin_define ("_HPUX_SOURCE"); \
+ builtin_define ("_REENTRANT"); \
+ if (preprocessing_trad_p ()) \
+@@ -59,12 +73,12 @@
+ builtin_define ("_PWB"); \
+ builtin_define ("PWB"); \
+ } \
++ if (flag_pa_unix >= 1995) \
++ { \
++ builtin_define ("_XOPEN_UNIX"); \
++ builtin_define ("_XOPEN_SOURCE_EXTENDED"); \
++ } \
+ } \
+- if (flag_pa_unix >= 1995) \
+- { \
+- builtin_define ("_XOPEN_UNIX"); \
+- builtin_define ("_XOPEN_SOURCE_EXTENDED"); \
+- } \
+ if (TARGET_SIO) \
+ builtin_define ("_SIO"); \
+ else \
+Index: gcc/config/pa/pa-hpux11.h
+===================================================================
+--- a/src/gcc/config/pa/pa-hpux11.h (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/config/pa/pa-hpux11.h (.../branches/gcc-5-branch)
+@@ -23,7 +23,9 @@
+ the definition of __cplusplus. We define _INCLUDE_LONGLONG
+ to prevent nlist.h from defining __STDC_32_MODE__ (no longlong
+ support). We define __STDCPP__ to get certain system headers
+- (notably assert.h) to assume standard preprocessor behavior in C++. */
++ (notably assert.h) to assume standard preprocessor behavior in C++.
++ We define _XOPEN_SOURCE_EXTENDED when we define _HPUX_SOURCE to avoid
++ non standard hpux variants in _INCLUDE_XOPEN_SOURCE_EXTENDED. */
+ #undef TARGET_OS_CPP_BUILTINS
+ #define TARGET_OS_CPP_BUILTINS() \
+ do \
+@@ -43,46 +45,69 @@
+ builtin_define ("_REENTRANT"); \
+ builtin_define ("_INCLUDE_LONGLONG"); \
+ builtin_define ("__STDCPP__"); \
+- } \
+- else \
+- { \
+- if (!flag_iso) \
++ builtin_define ("_LARGEFILE_SOURCE"); \
++ builtin_define ("_LARGEFILE64_SOURCE"); \
++ if (flag_pa_unix >= 1995) \
+ { \
+- builtin_define ("_HPUX_SOURCE"); \
+- builtin_define ("_REENTRANT"); \
+- if (preprocessing_trad_p ()) \
+- { \
+- builtin_define ("hp9000s800"); \
+- builtin_define ("hppa"); \
+- builtin_define ("hpux"); \
+- builtin_define ("unix"); \
+- builtin_define ("__CLASSIC_C__"); \
+- builtin_define ("_PWB"); \
+- builtin_define ("PWB"); \
+- } \
++ builtin_define ("_XOPEN_UNIX"); \
++ builtin_define ("_XOPEN_SOURCE_EXTENDED"); \
+ } \
++ if (flag_pa_unix >= 1998) \
++ { \
++ builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_500"); \
++ } \
++ if (flag_pa_unix >= 2003) \
++ { \
++ builtin_define ("_INCLUDE_STDC_SOURCE_PRE_199901"); \
++ builtin_define ("_INCLUDE_STDC_SOURCE_199901"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_PRE_500"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_520"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_PRE_600"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_600"); \
++ } \
+ } \
+- if (!TARGET_64BIT) \
+- builtin_define ("_ILP32"); \
+- if (flag_pa_unix >= 1995 && !flag_iso) \
++ else if (flag_iso) \
+ { \
+- builtin_define ("_XOPEN_UNIX"); \
+- builtin_define ("_XOPEN_SOURCE_EXTENDED"); \
++ if (flag_isoc94) \
++ builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
+ } \
+- if (TARGET_HPUX_11_11) \
++ else \
+ { \
++ builtin_define ("_HPUX_SOURCE"); \
++ builtin_define ("_REENTRANT"); \
++ if (preprocessing_trad_p ()) \
++ { \
++ builtin_define ("hp9000s800"); \
++ builtin_define ("hppa"); \
++ builtin_define ("hpux"); \
++ builtin_define ("unix"); \
++ builtin_define ("__CLASSIC_C__"); \
++ builtin_define ("_PWB"); \
++ builtin_define ("PWB"); \
++ } \
++ if (flag_pa_unix >= 1995) \
++ { \
++ builtin_define ("_XOPEN_UNIX"); \
++ builtin_define ("_XOPEN_SOURCE_EXTENDED"); \
++ } \
+ if (flag_pa_unix >= 1998) \
+ { \
+- if (flag_isoc94 || flag_isoc99 || c_dialect_cxx() \
+- || !flag_iso) \
+- builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
+- if (!flag_iso) \
+- builtin_define ("_INCLUDE_XOPEN_SOURCE_500"); \
++ builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_500"); \
+ } \
+- else if (flag_isoc94 || flag_isoc99 || c_dialect_cxx ()) \
+- warning (0, "-munix=98 option required for C89 " \
+- "Amendment 1 features.\n"); \
++ if (flag_pa_unix >= 2003) \
++ { \
++ builtin_define ("_INCLUDE_STDC_SOURCE_PRE_199901"); \
++ builtin_define ("_INCLUDE_STDC_SOURCE_199901"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_PRE_500"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_520"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_PRE_600"); \
++ builtin_define ("_INCLUDE_XOPEN_SOURCE_600"); \
++ } \
+ } \
++ if (!TARGET_64BIT) \
++ builtin_define ("_ILP32"); \
+ if (TARGET_SIO) \
+ builtin_define ("_SIO"); \
+ else \
Index: gcc/config/pa/pa.c
===================================================================
--- a/src/gcc/config/pa/pa.c (.../tags/gcc_5_1_0_release)
@@ -634168,6 +638041,51 @@ Index: gcc/config/pa/pa-linux.h
#undef ASM_SPEC
#define ASM_SPEC \
+Index: gcc/tree-vect-slp.c
+===================================================================
+--- a/src/gcc/tree-vect-slp.c (.../tags/gcc_5_1_0_release)
++++ b/src/gcc/tree-vect-slp.c (.../branches/gcc-5-branch)
+@@ -1875,21 +1875,27 @@
+ {
+ /* Check if a pure SLP stmt has uses in non-SLP stmts. */
+ gcc_checking_assert (PURE_SLP_STMT (stmt_vinfo));
++ /* We always get the pattern stmt here, but for immediate
++ uses we have to use the LHS of the original stmt. */
++ gcc_checking_assert (!STMT_VINFO_IN_PATTERN_P (stmt_vinfo));
++ if (STMT_VINFO_RELATED_STMT (stmt_vinfo))
++ stmt = STMT_VINFO_RELATED_STMT (stmt_vinfo);
+ if (TREE_CODE (gimple_op (stmt, 0)) == SSA_NAME)
+ FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, gimple_op (stmt, 0))
+- if (gimple_bb (use_stmt)
+- && flow_bb_inside_loop_p (loop, gimple_bb (use_stmt))
+- && (use_vinfo = vinfo_for_stmt (use_stmt))
+- && !STMT_SLP_TYPE (use_vinfo)
+- && (STMT_VINFO_RELEVANT (use_vinfo)
+- || VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (use_vinfo))
+- || (STMT_VINFO_IN_PATTERN_P (use_vinfo)
+- && STMT_VINFO_RELATED_STMT (use_vinfo)
+- && !STMT_SLP_TYPE (vinfo_for_stmt
+- (STMT_VINFO_RELATED_STMT (use_vinfo)))))
+- && !(gimple_code (use_stmt) == GIMPLE_PHI
+- && STMT_VINFO_DEF_TYPE (use_vinfo) == vect_reduction_def))
+- stype = hybrid;
++ {
++ if (!flow_bb_inside_loop_p (loop, gimple_bb (use_stmt)))
++ continue;
++ use_vinfo = vinfo_for_stmt (use_stmt);
++ if (STMT_VINFO_IN_PATTERN_P (use_vinfo)
++ && STMT_VINFO_RELATED_STMT (use_vinfo))
++ use_vinfo = vinfo_for_stmt (STMT_VINFO_RELATED_STMT (use_vinfo));
++ if (!STMT_SLP_TYPE (use_vinfo)
++ && (STMT_VINFO_RELEVANT (use_vinfo)
++ || VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (use_vinfo)))
++ && !(gimple_code (use_stmt) == GIMPLE_PHI
++ && STMT_VINFO_DEF_TYPE (use_vinfo) == vect_reduction_def))
++ stype = hybrid;
++ }
+ }
+
+ if (stype == hybrid)
Index: libgo/Makefile.in
===================================================================
--- a/src/libgo/Makefile.in (.../tags/gcc_5_1_0_release)