Commit 37f6b6bf by Mark Mitchell Committed by Jason Merrill

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
parent a3a5b5b7
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.
Sun Sep 28 01:55:04 1997 Philippe De Muyter <phdm@info.ucl.ac.be> Sun Sep 28 01:55:04 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* flow.c (print_rtl_with_bb): Cast alloca return values for variables * flow.c (print_rtl_with_bb): Cast alloca return values for variables
......
...@@ -104,8 +104,9 @@ in the following sections. ...@@ -104,8 +104,9 @@ in the following sections.
@smallexample @smallexample
-fall-virtual -fdollars-in-identifiers -felide-constructors -fall-virtual -fdollars-in-identifiers -felide-constructors
-fenum-int-equiv -fexternal-templates -ffor-scope -fno-for-scope -fenum-int-equiv -fexternal-templates -ffor-scope -fno-for-scope
-fhandle-signatures -fmemoize-lookups -fno-default-inline -fno-gnu-keywords -fhandle-signatures -fmemoize-lookups -fname-mangling-version-@var{n}
-fnonnull-objects -foperator-names -fstrict-prototype -fthis-is-variable -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} -ftemplate-depth-@var{n} -nostdinc++ -traditional +e@var{n}
@end smallexample @end smallexample
...@@ -925,11 +926,15 @@ Cause template instantiations to obey @samp{#pragma interface} and ...@@ -925,11 +926,15 @@ Cause template instantiations to obey @samp{#pragma interface} and
to the location of the template definition. @xref{Template to the location of the template definition. @xref{Template
Instantiation}, for more information. Instantiation}, for more information.
This option is deprecated.
@item -falt-external-templates @item -falt-external-templates
Similar to -fexternal-templates, but template instances are emitted or Similar to -fexternal-templates, but template instances are emitted or
not according to the place where they are first instantiated. not according to the place where they are first instantiated.
@xref{Template Instantiation}, for more information. @xref{Template Instantiation}, for more information.
This option is deprecated.
@item -ffor-scope @item -ffor-scope
@item -fno-for-scope @item -fno-for-scope
If -ffor-scope is specified, the scope of variables declared in 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__}, ...@@ -952,6 +957,18 @@ words as identifiers. You can use the keywords @code{__classof__},
@code{__typeof__} instead. @samp{-ansi} implies @code{__typeof__} instead. @samp{-ansi} implies
@samp{-fno-gnu-keywords}. @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 @item -fno-implicit-templates
Never emit code for templates which are instantiated implicitly (i.e. by Never emit code for templates which are instantiated implicitly (i.e. by
use); only emit code for explicit instantiations. @xref{Template use); only emit code for explicit instantiations. @xref{Template
...@@ -1029,6 +1046,17 @@ overridden with @samp{-fno-strict-prototype}. ...@@ -1029,6 +1046,17 @@ overridden with @samp{-fno-strict-prototype}.
This flag no longer affects declarations with C++ linkage. 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 @item -fno-nonnull-objects
Don't assume that a reference is initialized to refer to a valid object. Don't assume that a reference is initialized to refer to a valid object.
Although the current C++ Working Paper prohibits null references, some Although the current C++ Working Paper prohibits null references, some
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment