<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU Assembler "as".

Copyright (C) 1991-2013 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled "GNU Free Documentation License".
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: Type</title>

<meta name="description" content="Using as: Type">
<meta name="keywords" content="Using as: Type">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Pseudo-Ops.html#Pseudo-Ops" rel="up" title="Pseudo Ops">
<link href="Uleb128.html#Uleb128" rel="next" title="Uleb128">
<link href="Title.html#Title" rel="prev" title="Title">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Type"></a>
<div class="header">
<p>
Next: <a href="Uleb128.html#Uleb128" accesskey="n" rel="next">Uleb128</a>, Previous: <a href="Title.html#Title" accesskey="p" rel="prev">Title</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="g_t_002etype"></a>
<h3 class="section">7.115 <code>.type</code></h3>

<p>This directive is used to set the type of a symbol.
</p>
<a name="COFF-Version-2"></a>
<h4 class="subheading">COFF Version</h4>

<a name="index-COFF-symbol-type"></a>
<a name="index-symbol-type_002c-COFF"></a>
<a name="index-type-directive-_0028COFF-version_0029"></a>
<p>For COFF targets, this directive is permitted only within
<code>.def</code>/<code>.endef</code> pairs.  It is used like this:
</p>
<div class="smallexample">
<pre class="smallexample">.type <var>int</var>
</pre></div>

<p>This records the integer <var>int</var> as the type attribute of a symbol table
entry.
</p>

<a name="ELF-Version-2"></a>
<h4 class="subheading">ELF Version</h4>

<a name="index-ELF-symbol-type"></a>
<a name="index-symbol-type_002c-ELF"></a>
<a name="index-type-directive-_0028ELF-version_0029"></a>
<p>For ELF targets, the <code>.type</code> directive is used like this:
</p>
<div class="smallexample">
<pre class="smallexample">.type <var>name</var> , <var>type description</var>
</pre></div>

<p>This sets the type of symbol <var>name</var> to be either a
function symbol or an object symbol.  There are five different syntaxes
supported for the <var>type description</var> field, in order to provide
compatibility with various other assemblers.
</p>
<p>Because some of the characters used in these syntaxes (such as &lsquo;<samp>@</samp>&rsquo; and
&lsquo;<samp>#</samp>&rsquo;) are comment characters for some architectures, some of the syntaxes
below do not work on all architectures.  The first variant will be accepted by
the GNU assembler on all architectures so that variant should be used for
maximum portability, if you do not need to assemble your code with other
assemblers.
</p>
<p>The syntaxes supported are:
</p>
<div class="smallexample">
<pre class="smallexample">  .type &lt;name&gt; STT_&lt;TYPE_IN_UPPER_CASE&gt;
  .type &lt;name&gt;,#&lt;type&gt;
  .type &lt;name&gt;,@&lt;type&gt;
  .type &lt;name&gt;,%&lt;type&gt;
  .type &lt;name&gt;,&quot;&lt;type&gt;&quot;
</pre></div>

<p>The types supported are:
</p>
<dl compact="compact">
<dt><code>STT_FUNC</code></dt>
<dt><code>function</code></dt>
<dd><p>Mark the symbol as being a function name.
</p>
</dd>
<dt><code>STT_GNU_IFUNC</code></dt>
<dt><code>gnu_indirect_function</code></dt>
<dd><p>Mark the symbol as an indirect function when evaluated during reloc
processing.  (This is only supported on assemblers targeting GNU systems).
</p>
</dd>
<dt><code>STT_OBJECT</code></dt>
<dt><code>object</code></dt>
<dd><p>Mark the symbol as being a data object.
</p>
</dd>
<dt><code>STT_TLS</code></dt>
<dt><code>tls_object</code></dt>
<dd><p>Mark the symbol as being a thead-local data object.
</p>
</dd>
<dt><code>STT_COMMON</code></dt>
<dt><code>common</code></dt>
<dd><p>Mark the symbol as being a common data object.
</p>
</dd>
<dt><code>STT_NOTYPE</code></dt>
<dt><code>notype</code></dt>
<dd><p>Does not mark the symbol in any way.  It is supported just for completeness.
</p>
</dd>
<dt><code>gnu_unique_object</code></dt>
<dd><p>Marks the symbol as being a globally unique data object.  The dynamic linker
will make sure that in the entire process there is just one symbol with this
name and type in use.  (This is only supported on assemblers targeting GNU
systems).
</p>
</dd>
</dl>

<p>Note: Some targets support extra types in addition to those listed above.
</p>

<hr>
<div class="header">
<p>
Next: <a href="Uleb128.html#Uleb128" accesskey="n" rel="next">Uleb128</a>, Previous: <a href="Title.html#Title" accesskey="p" rel="prev">Title</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
