This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: New name mangling in g++
Jakub Jelinek <jakub@redhat.com> writes:
|> On Mon, Jan 29, 2001 at 05:32:59PM +0100, Andreas Schwab wrote:
|> > Oliver Kellogg <oliver.kellogg@vs.dasa.de> writes:
|> >
|> > |> Hello IA-64 C++ ABI experts,
|> > |>
|> > |> I am trying to understand the name mangling scheme as
|> > |> implemented in recent experimental snapshots of G++.
|> > |>
|> > |> Given this code:
|> > |>
|> > |> typedef struct {
|> > |> int a;
|> > |> } stru;
|> > |>
|> > |> class M {
|> > |> public:
|> > |> // [...]
|> > |> void mixed (const stru &a, const stru b, stru &c, stru d,
|> > |> const stru &e, const stru f, stru &g, stru h);
|> > |> };
|> > |>
|> > |>
|> > |> the gcc-snapshot-20010126 mangles the method "mixed" as follows:
|> > |>
|> > |> _ZN1M5mixedERK4struS0_RS0_S0_S2_S0_S3_S0_
|> > |>
|> > |> My questions are:
|> > |> What does the mangler treat as S1?
|> > |> Where is the `const' qualifier of argument b coded?
|> >
|> > The `const' is not part of the interface.
|>
|> const is part of the interface, it is encoded with the K.
Since argument b is passed by value, the const should not matter, should
it?
Andreas.
--
Andreas Schwab "And now for something
SuSE Labs completely different."
Andreas.Schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg