From 0e7750a0105041cf8dda86be2e9309530df2212f Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 24 Feb 2010 14:26:45 -0500 Subject: [PATCH] * doc/invoke.texi: Improve -Wabi and -fabi-version docs. From-SVN: r157053 --- gcc/ChangeLog | 4 ++++ gcc/doc/invoke.texi | 32 +++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5aee0a123c3..6eb392c6b4e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2010-02-24 Jason Merrill + + * doc/invoke.texi: Improve -Wabi and -fabi-version docs. + 2010-02-24 Rainer Orth * cfg.c (alloc_aux_for_block): Remove inline. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index f6610019802..36b3568dc2a 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 struct S @{@}; +void n (S) @{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 -- 2.30.2