aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-02-24 14:26:45 -0500
committerJason Merrill <jason@gcc.gnu.org>2010-02-24 14:26:45 -0500
commit0e7750a0105041cf8dda86be2e9309530df2212f (patch)
tree211bd6da3eea420dc89433a314b865c741e6a72d /gcc/doc
parentb66093b0c21ce1818e61d082738198126f47674e (diff)
downloadgcc-0e7750a0105041cf8dda86be2e9309530df2212f.zip
gcc-0e7750a0105041cf8dda86be2e9309530df2212f.tar.gz
gcc-0e7750a0105041cf8dda86be2e9309530df2212f.tar.bz2
* doc/invoke.texi: Improve -Wabi and -fabi-version docs.
From-SVN: r157053
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/invoke.texi32
1 files changed, 31 insertions, 1 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f661001..36b3568 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -1780,6 +1780,13 @@ are fixed.
The default is version 2.
+Version 3 corrects an error in mangling a constant address as a
+template argument.
+
+Version 4 implements a standard mangling for vector types.
+
+See also @option{-Wabi}.
+
@item -fno-access-control
@opindex fno-access-control
Turn off all access checking. This switch is mainly useful for working
@@ -2096,7 +2103,30 @@ You should rewrite your code to avoid these warnings if you are
concerned about the fact that code generated by G++ may not be binary
compatible with code generated by other compilers.
-The known incompatibilities at this point include:
+The known incompatibilities in @option{-fabi-version=2} (the default) include:
+
+@itemize @bullet
+
+@item
+A template with a non-type template parameter of reference type is
+mangled incorrectly:
+@smallexample
+extern int N;
+template <int &> struct S @{@};
+void n (S<N>) @{2@}
+@end smallexample
+
+This is fixed in @option{-fabi-version=3}.
+
+@item
+SIMD vector types declared using @code{__attribute ((vector_size))} are
+mangled in a non-standard way that does not allow for overloading of
+functions taking vectors of different sizes.
+
+The mangling is changed in @option{-fabi-version=4}.
+@end itemize
+
+The known incompatibilities in @option{-fabi-version=1} include:
@itemize @bullet