Initial bulk commit for "Git on MSys"
[msysgit/historical-msysgit.git] / mingw / info / stabs / Class-Names.html
blobff04a158b09dd1946b6e315324a48732ca741454
1 <html lang="en">
2 <head>
3 <title>STABS</title>
4 <meta http-equiv="Content-Type" content="text/html">
5 <meta name="description" content="STABS">
6 <meta name="generator" content="makeinfo 4.3">
7 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
8 </head>
9 <body>
10 <div class="node">
11 <p>
12 Node:<a name="Class%20Names">Class Names</a>,
13 Next:<a rel="next" accesskey="n" href="Nested-Symbols.html#Nested%20Symbols">Nested Symbols</a>,
14 Up:<a rel="up" accesskey="u" href="Cplusplus.html#Cplusplus">Cplusplus</a>
15 <hr><br>
16 </div>
18 <h3 class="section">C++ Class Names</h3>
20 <p>In C++, a class name which is declared with <code>class</code>, <code>struct</code>,
21 or <code>union</code>, is not only a tag, as in C, but also a type name. Thus
22 there should be stabs with both <code>t</code> and <code>T</code> symbol descriptors
23 (see <a href="Typedefs.html#Typedefs">Typedefs</a>).
25 <p>To save space, there is a special abbreviation for this case. If the
26 <code>T</code> symbol descriptor is followed by <code>t</code>, then the stab
27 defines both a type name and a tag.
29 <p>For example, the C++ code
31 <pre class="example"> struct foo {int x;};
32 </pre>
34 <p>can be represented as either
36 <pre class="example"> .stabs "foo:T19=s4x:1,0,32;;",128,0,0,0 # 128 is N_LSYM
37 .stabs "foo:t19",128,0,0,0
38 </pre>
40 <p>or
42 <pre class="example"> .stabs "foo:Tt19=s4x:1,0,32;;",128,0,0,0
43 </pre>
45 </body></html>