aboutsummaryrefslogtreecommitdiff
path: root/gcc/invoke.texi
diff options
context:
space:
mode:
authorMark Mitchell <mmitchell@usa.net>1997-09-28 19:59:54 +0000
committerJason Merrill <jason@gcc.gnu.org>1997-09-28 15:59:54 -0400
commit37f6b6bfd2e1c127fa597f4949f62ecd12fcd187 (patch)
tree557a4cc1c19a40c72c34dac014fb6edece85096b /gcc/invoke.texi
parenta3a5b5b7bf729dda824c4b644bbe28f830e4fbc4 (diff)
downloadgcc-37f6b6bfd2e1c127fa597f4949f62ecd12fcd187.zip
gcc-37f6b6bfd2e1c127fa597f4949f62ecd12fcd187.tar.gz
gcc-37f6b6bfd2e1c127fa597f4949f62ecd12fcd187.tar.bz2
cplus-dem.c (demangle_template): Add new parameter.
Sun Sep 28 12:00:52 1997 Mark Mitchell <mmitchell@usa.net> * cplus-dem.c (demangle_template): Add new parameter. Handle new template-function mangling. (consume_count_with_underscores): New function. (demangle_signature): Handle new name-mangling scheme. From-SVN: r15780
Diffstat (limited to 'gcc/invoke.texi')
-rw-r--r--gcc/invoke.texi32
1 files changed, 30 insertions, 2 deletions
diff --git a/gcc/invoke.texi b/gcc/invoke.texi
index 7332f62..0437f25 100644
--- a/gcc/invoke.texi
+++ b/gcc/invoke.texi
@@ -104,8 +104,9 @@ in the following sections.
@smallexample
-fall-virtual -fdollars-in-identifiers -felide-constructors
-fenum-int-equiv -fexternal-templates -ffor-scope -fno-for-scope
--fhandle-signatures -fmemoize-lookups -fno-default-inline -fno-gnu-keywords
--fnonnull-objects -foperator-names -fstrict-prototype -fthis-is-variable
+-fhandle-signatures -fmemoize-lookups -fname-mangling-version-@var{n}
+-fno-default-inline -fno-gnu-keywords -fnonnull-objects -fguiding-decls
+-foperator-names -fstrict-prototype -fthis-is-variable
-ftemplate-depth-@var{n} -nostdinc++ -traditional +e@var{n}
@end smallexample
@@ -925,11 +926,15 @@ Cause template instantiations to obey @samp{#pragma interface} and
to the location of the template definition. @xref{Template
Instantiation}, for more information.
+This option is deprecated.
+
@item -falt-external-templates
Similar to -fexternal-templates, but template instances are emitted or
not according to the place where they are first instantiated.
@xref{Template Instantiation}, for more information.
+This option is deprecated.
+
@item -ffor-scope
@item -fno-for-scope
If -ffor-scope is specified, the scope of variables declared in
@@ -952,6 +957,18 @@ words as identifiers. You can use the keywords @code{__classof__},
@code{__typeof__} instead. @samp{-ansi} implies
@samp{-fno-gnu-keywords}.
+@item -fguiding-decls
+Treat a function declaration with the same type as a potential function
+template instantiation as though it declares that instantiation, not a
+normal function. If a definition is given for the function later in the
+translation unit (or another translation unit if the target supports
+weak symbols), that definition will be used; otherwise the template will
+be instantiated. This behavior reflects the C++ language prior to
+September 1996, when guiding declarations were removed.
+
+This option implies @samp{-fname-mangling-version-0}, and will not work
+with other name mangling versions.
+
@item -fno-implicit-templates
Never emit code for templates which are instantiated implicitly (i.e. by
use); only emit code for explicit instantiations. @xref{Template
@@ -1029,6 +1046,17 @@ overridden with @samp{-fno-strict-prototype}.
This flag no longer affects declarations with C++ linkage.
+@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
+
@item -fno-nonnull-objects
Don't assume that a reference is initialized to refer to a valid object.
Although the current C++ Working Paper prohibits null references, some