Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
61fbdb55
Commit
61fbdb55
authored
Apr 30, 1998
by
Andrew MacLeod
Committed by
Andrew Macleod
Apr 30, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update gxxint.texi to include squangling info
From-SVN: r19502
parent
d6bcc74a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
2 deletions
+73
-2
gcc/cp/ChangeLog
+4
-0
gcc/cp/gxxint.texi
+69
-2
No files found.
gcc/cp/ChangeLog
View file @
61fbdb55
Thu Apr 30 13:05:33 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* gxxint.texi: Add info for squangling codes K and B.
Tue Apr 28 13:22:01 1998 Mark Mitchell <mmitchell@usa.net>
Tue Apr 28 13:22:01 1998 Mark Mitchell <mmitchell@usa.net>
* semantics.c (begin_stmt_expr): Avoid duplicating the effect of
* semantics.c (begin_stmt_expr): Avoid duplicating the effect of
...
...
gcc/cp/gxxint.texi
View file @
61fbdb55
...
@@ -1664,6 +1664,39 @@ A Java object reference type is equivalent
...
@@ -1664,6 +1664,39 @@ A Java object reference type is equivalent
to
a
C
++
pointer
parameter
,
so
we
mangle
such
an
parameter
type
to
a
C
++
pointer
parameter
,
so
we
mangle
such
an
parameter
type
as
@samp
{
P
}
followed
by
the
mangling
of
the
class
name
.
as
@samp
{
P
}
followed
by
the
mangling
of
the
class
name
.
@subsection
Squangled
type
compression
Squangling
(
enabled
with
the
@samp
{
-
fsquangle
}
option
),
utilizes
the
@samp
{
B
}
code
to
indicate
reuse
of
a
previously
seen
type
within
an
indentifier
.
Types
are
recognized
in
a
left
to
right
manner
and
given
increasing
values
,
which
are
appended
to
the
code
in
the
standard
manner
.
Ie
,
multiple
digit
numbers
are
delimited
by
@samp
{
_
}
characters
.
A
type
is
considered
to
be
any
non
primitive
type
,
regardless
of
whether
its
a
parameter
,
template
parameter
,
or
entire
template
.
Certain
codes
are
considered
modifiers
of
a
type
,
and
are
not
included
as
part
of
the
type
.
These
are
the
@samp
{
C
},
@samp
{
V
},
@samp
{
P
},
@samp
{
A
},
@samp
{
R
},
and
@samp
{
U
}
codes
,
denoting
constant
,
volatile
,
pointer
,
array
,
reference
,
and
unsigned
.
These
codes
may
precede
a
@samp
{
B
}
type
in
order
to
make
the
required
modifications
to
the
type
.
For
example
:
@example
template
<
class
T
>
class
class1
@{
@
};
template
<
class
T
>
class
class2
@{
@
};
class
class3
@{
@
};
int
f
(
class2
<
class1
<
class3
>
>
a
,
int
b
,
const
class1
<
class3
>&
c
,
class3
*
d
)
@{
@
}
B0
->
class2
<
class1
<
class3
>
B1
->
class1
<
class3
>
B2
->
class3
@end
example
Produces
the
mangled
name
@samp
{
f__FGt6class21Zt6class11Z6class3iRCB1PB2
}.
The
int
parameter
is
a
basic
type
,
and
does
not
receive
a
B
encoding
...
@subsection
Qualified
names
@subsection
Qualified
names
Both
C
++
and
Java
allow
a
class
to
be
lexically
nested
inside
another
Both
C
++
and
Java
allow
a
class
to
be
lexically
nested
inside
another
...
@@ -1680,6 +1713,40 @@ Then follows each part of the qualified name, as described above.
...
@@ -1680,6 +1713,40 @@ Then follows each part of the qualified name, as described above.
For
example
@code
{
Foo
::
\
u0319
::
Bar
}
is
encoded
as
For
example
@code
{
Foo
::
\
u0319
::
Bar
}
is
encoded
as
@samp
{
Q33FooU5_03193Bar
}.
@samp
{
Q33FooU5_03193Bar
}.
Squangling
utilizes
the
the
letter
@samp
{
K
}
to
indicate
a
remembered
portion
of
a
qualified
name
.
As
qualified
names
are
processed
for
an
identifier
,
the
names
are
numbered
and
remembered
in
a
manner
similar
to
the
@samp
{
B
}
type
compression
code
.
Names
are
recognized
left
to
right
,
and
given
increasing
values
,
which
are
appended
to
the
code
in
the
standard
manner
.
ie
,
multiple
digit
numbers
are
delimited
by
@samp
{
_
}
characters
.
For
example
@example
class
Andrew
@{
class
WasHere
@{
class
AndHereToo
@{
@
}
;
@
}
;
@
};
f
(
Andrew
&
r1
,
Andrew
::
WasHere
&
r2
,
Andrew
::
WasHere
::
AndHereToo
&
r3
)
@{
@
}
K0
->
Andrew
K1
->
Andrew
::
WasHere
K2
->
Andrew
::
WasHere
::
AndHereToo
@end
example
Function
@samp
{
f
()}
would
be
mangled
as
:
@samp
{
f__FR6AndrewRQ2K07WasHereRQ2K110AndHereToo
}
There
are
some
occasions
when
either
a
@samp
{
B
}
or
@samp
{
K
}
code
could
be
chosen
,
preference
is
always
given
to
the
@samp
{
B
}
code
.
Ie
,
the
example
in
the
section
on
@samp
{
B
}
mangling
could
have
used
a
@samp
{
K
}
code
instead
of
@samp
{
B2
}.
@subsection
Templates
@subsection
Templates
A
class
template
instantiation
is
encoded
as
the
letter
@samp
{
t
},
A
class
template
instantiation
is
encoded
as
the
letter
@samp
{
t
},
...
@@ -1747,7 +1814,7 @@ Encodes the C++ @code{bool} type,
...
@@ -1747,7 +1814,7 @@ Encodes the C++ @code{bool} type,
and
the
Java
@code
{
boolean
}
type
.
and
the
Java
@code
{
boolean
}
type
.
@item
B
@item
B
Used
for
squangling
.
Used
for
squangling
.
Similar
in
concept
to
the
'T'
non
-
squangled
code
.
@item
c
@item
c
Encodes
the
C
++
@code
{
char
}
type
,
and
the
Java
@code
{
byte
}
type
.
Encodes
the
C
++
@code
{
char
}
type
,
and
the
Java
@code
{
byte
}
type
.
...
@@ -1782,7 +1849,7 @@ Encodes the C++ and Java @code{int} types.
...
@@ -1782,7 +1849,7 @@ Encodes the C++ and Java @code{int} types.
Indicates
a
complex
type
.
Indicates
a
complex
type
.
@item
K
@item
K
Used
for
squangling
.
Used
by
squangling
to
compress
qualified
names
.
@item
l
@item
l
Encodes
the
C
++
@code
{
long
}
type
.
Encodes
the
C
++
@code
{
long
}
type
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment