diff options
author | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2015-06-10 13:37:49 +0000 |
---|---|---|
committer | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2015-06-10 13:37:49 +0000 |
commit | 3ecf19c737df470116d6a6a23143d4d3c3ad27dc (patch) | |
tree | a705fa5a48ae99b70c8502258eb79b95aef5c414 /debian | |
parent | 06c46edf35b69d3c9647f8f1a4a8cd4d671b5bc4 (diff) | |
download | gcc-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/changelog | 3 | ||||
-rw-r--r-- | debian/patches/svn-updates.diff | 4298 |
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 <thread>, <future>, +- <mutex>, or <condition_variable>.</entry> ++ <entry>For ISO C++11 ++ <filename class="headerfile"><thread></filename>, ++ <filename class="headerfile"><future></filename>, ++ <filename class="headerfile"><mutex></filename>, ++ or <filename class="headerfile"><condition_variable></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"><atomic></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 <ios>. Most of these macros +- should not be used by consumers of libstdc++, and are reserved ++ the public libstdc++ API, like ++ <filename class="headerfile"><ios></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<int></classname> is actually defined as ++ <classname>std::__cxx11::list<int></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<std::time_get<char>>(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"><stdexcept></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 <thread>, <future>, +- <mutex>, or <condition_variable>.</td></tr><tr><td align="left"><code class="literal">-fopenmp</code></td><td align="left">For <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Make </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Headers</td></tr></table></div></body></html> +\ 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"><thread></code>, ++ <code class="filename"><future></code>, ++ <code class="filename"><mutex></code>, ++ or <code class="filename"><condition_variable></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"><atomic></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 <ios>. Most of these macros +- should not be used by consumers of libstdc++, and are reserved ++ the public libstdc++ API, like ++ <code class="filename"><ios></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"><ext/concurrence.h></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"><ext/concurrence.h></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->_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<int></code> is actually defined as ++ <code class="classname">std::__cxx11::list<int></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<std::time_get<char>>(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"><stdexcept></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) |