• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/share/doc/arm-arm-none-eabi/html/gcc/
1<html lang="en">
2<head>
3<title>C99 Thread-Local Edits - Using the GNU Compiler Collection (GCC)</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name="description" content="Using the GNU Compiler Collection (GCC)">
6<meta name="generator" content="makeinfo 4.13">
7<link title="Top" rel="start" href="index.html#Top">
8<link rel="up" href="Thread_002dLocal.html#Thread_002dLocal" title="Thread-Local">
9<link rel="next" href="C_002b_002b98-Thread_002dLocal-Edits.html#C_002b_002b98-Thread_002dLocal-Edits" title="C++98 Thread-Local Edits">
10<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
11<!--
12Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
131998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
142010 Free Software Foundation, Inc.
15
16Permission is granted to copy, distribute and/or modify this document
17under the terms of the GNU Free Documentation License, Version 1.3 or
18any later version published by the Free Software Foundation; with the
19Invariant Sections being ``Funding Free Software'', the Front-Cover
20Texts being (a) (see below), and with the Back-Cover Texts being (b)
21(see below).  A copy of the license is included in the section entitled
22``GNU Free Documentation License''.
23
24(a) The FSF's Front-Cover Text is:
25
26     A GNU Manual
27
28(b) The FSF's Back-Cover Text is:
29
30     You have freedom to copy and modify this GNU Manual, like GNU
31     software.  Copies published by the Free Software Foundation raise
32     funds for GNU development.-->
33<meta http-equiv="Content-Style-Type" content="text/css">
34<style type="text/css"><!--
35  pre.display { font-family:inherit }
36  pre.format  { font-family:inherit }
37  pre.smalldisplay { font-family:inherit; font-size:smaller }
38  pre.smallformat  { font-family:inherit; font-size:smaller }
39  pre.smallexample { font-size:smaller }
40  pre.smalllisp    { font-size:smaller }
41  span.sc    { font-variant:small-caps }
42  span.roman { font-family:serif; font-weight:normal; } 
43  span.sansserif { font-family:sans-serif; font-weight:normal; } 
44--></style>
45<link rel="stylesheet" type="text/css" href="../cs.css">
46</head>
47<body>
48<div class="node">
49<a name="C99-Thread-Local-Edits"></a>
50<a name="C99-Thread_002dLocal-Edits"></a>
51<p>
52Next:&nbsp;<a rel="next" accesskey="n" href="C_002b_002b98-Thread_002dLocal-Edits.html#C_002b_002b98-Thread_002dLocal-Edits">C++98 Thread-Local Edits</a>,
53Up:&nbsp;<a rel="up" accesskey="u" href="Thread_002dLocal.html#Thread_002dLocal">Thread-Local</a>
54<hr>
55</div>
56
57<h4 class="subsection">6.58.1 ISO/IEC 9899:1999 Edits for Thread-Local Storage</h4>
58
59<p>The following are a set of changes to ISO/IEC 9899:1999 (aka C99)
60that document the exact semantics of the language extension.
61
62     <ul>
63<li><cite>5.1.2  Execution environments</cite>
64
65     <p>Add new text after paragraph 1
66
67     <blockquote>
68Within either execution environment, a <dfn>thread</dfn> is a flow of
69control within a program.  It is implementation defined whether
70or not there may be more than one thread associated with a program. 
71It is implementation defined how threads beyond the first are
72created, the name and type of the function called at thread
73startup, and how threads may be terminated.  However, objects
74with thread storage duration shall be initialized before thread
75startup. 
76</blockquote>
77
78     <li><cite>6.2.4  Storage durations of objects</cite>
79
80     <p>Add new text before paragraph 3
81
82     <blockquote>
83An object whose identifier is declared with the storage-class
84specifier <code>__thread</code><!-- /@w --> has <dfn>thread storage duration</dfn>. 
85Its lifetime is the entire execution of the thread, and its
86stored value is initialized only once, prior to thread startup. 
87</blockquote>
88
89     <li><cite>6.4.1  Keywords</cite>
90
91     <p>Add <code>__thread</code>.
92
93     <li><cite>6.7.1  Storage-class specifiers</cite>
94
95     <p>Add <code>__thread</code> to the list of storage class specifiers in
96paragraph 1.
97
98     <p>Change paragraph 2 to
99
100     <blockquote>
101With the exception of <code>__thread</code>, at most one storage-class
102specifier may be given [<small class="dots">...</small>].  The <code>__thread</code> specifier may
103be used alone, or immediately following <code>extern</code> or
104<code>static</code>. 
105</blockquote>
106
107     <p>Add new text after paragraph 6
108
109     <blockquote>
110The declaration of an identifier for a variable that has
111block scope that specifies <code>__thread</code> shall also
112specify either <code>extern</code> or <code>static</code>.
113
114     <p>The <code>__thread</code> specifier shall be used only with
115variables. 
116</blockquote>
117     </ul>
118
119 </body></html>
120
121