aboutsummaryrefslogtreecommitdiff
path: root/gcc/invoke.texi
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2000-06-09 12:26:24 -0400
committerJason Merrill <jason@gcc.gnu.org>2000-06-09 12:26:24 -0400
commit669ec2b4f0d25a10753a0c98ff786c4cb0e152a5 (patch)
treefdc9f3bc814a3a9dc10638c0528a97fecd63ad7b /gcc/invoke.texi
parentea11ca7ec12df7f53d437a738f984e26ef7ab85b (diff)
downloadgcc-669ec2b4f0d25a10753a0c98ff786c4cb0e152a5.zip
gcc-669ec2b4f0d25a10753a0c98ff786c4cb0e152a5.tar.gz
gcc-669ec2b4f0d25a10753a0c98ff786c4cb0e152a5.tar.bz2
revert mangling patch
From-SVN: r34471
Diffstat (limited to 'gcc/invoke.texi')
-rw-r--r--gcc/invoke.texi28
1 files changed, 27 insertions, 1 deletions
diff --git a/gcc/invoke.texi b/gcc/invoke.texi
index 82720d3..39989b6 100644
--- a/gcc/invoke.texi
+++ b/gcc/invoke.texi
@@ -111,7 +111,7 @@ in the following sections.
-fhuge-objects -fno-implicit-templates -finit-priority
-fno-implement-inlines -fname-mangling-version-@var{n}
-fno-default-inline -fno-operator-names -fno-optional-diags -fpermissive
--frepo -fstrict-prototype -ftemplate-depth-@var{n}
+-frepo -fstrict-prototype -fsquangle -ftemplate-depth-@var{n}
-fuse-cxa-atexit -fvtable-thunks -nostdinc++ -Wctor-dtor-privacy
-Wno-deprecated -Weffc++ -Wno-non-template-friend -Wnon-virtual-dtor
-Wold-style-cast -Woverloaded-virtual -Wno-pmf-conversions -Wreorder
@@ -1155,6 +1155,20 @@ errors if these functions are not inlined everywhere they are called.
Disable pedwarns about constructs used in MFC, such as implicit int and
getting a pointer to member function via non-standard syntax.
+@item -fname-mangling-version-@var{n}
+Control the way in which names are mangled. Version 0 is compatible
+with versions of g++ before 2.8. Version 1 is the default. Version 1
+will allow correct mangling of function templates. For example,
+version 0 mangling does not mangle foo<int, double> and foo<int, char>
+given this declaration:
+
+@example
+template <class T, class U> void foo(T t);
+@end example
+
+Like all options that change the ABI, all C++ code, @emph{including
+libgcc} must be built with the same setting of this option.
+
@item -fno-operator-names
Do not treat the operator name keywords @code{and}, @code{bitand},
@code{bitor}, @code{compl}, @code{not}, @code{or} and @code{xor} as
@@ -1197,6 +1211,18 @@ functions.
This flag no longer affects declarations with C++ linkage.
+@item -fsquangle
+@itemx -fno-squangle
+@samp{-fsquangle} will enable a compressed form of name mangling for
+identifiers. In particular, it helps to shorten very long names by recognizing
+types and class names which occur more than once, replacing them with special
+short ID codes. This option also requires any C++ libraries being used to
+be compiled with this option as well. The compiler has this disabled (the
+equivalent of @samp{-fno-squangle}) by default.
+
+Like all options that change the ABI, all C++ code, @emph{including
+libgcc.a} must be built with the same setting of this option.
+
@item -ftemplate-depth-@var{n}
Set the maximum instantiation depth for template classes to @var{n}.
A limit on the template instantiation depth is needed to detect