OLD | NEW |
1 {{+bindTo:partials.standard_nacl_article}} | 1 {{+bindTo:partials.standard_nacl_article}} |
2 | 2 |
3 <section id="pnacl-c-c-language-support"> | 3 <section id="pnacl-c-c-language-support"> |
4 <h1 id="pnacl-c-c-language-support">PNaCl C/C++ Language Support</h1> | 4 <h1 id="pnacl-c-c-language-support">PNaCl C/C++ Language Support</h1> |
5 <div class="contents local topic" id="contents"> | 5 <div class="contents local" id="contents" style="display: none"> |
6 <ul class="small-gap"> | 6 <ul class="small-gap"> |
7 <li><p class="first"><a class="reference internal" href="#source-language-suppor
t" id="id2">Source language support</a></p> | 7 <li><p class="first"><a class="reference internal" href="#source-language-suppor
t" id="id2">Source language support</a></p> |
8 <ul class="small-gap"> | 8 <ul class="small-gap"> |
9 <li><a class="reference internal" href="#preprocessor-definitions" id="id3">Prep
rocessor definitions</a></li> | 9 <li><a class="reference internal" href="#preprocessor-definitions" id="id3">Prep
rocessor definitions</a></li> |
10 </ul> | 10 </ul> |
11 </li> | 11 </li> |
12 <li><p class="first"><a class="reference internal" href="#memory-model-and-atomi
cs" id="id4">Memory Model and Atomics</a></p> | 12 <li><p class="first"><a class="reference internal" href="#memory-model-and-atomi
cs" id="id4">Memory Model and Atomics</a></p> |
13 <ul class="small-gap"> | 13 <ul class="small-gap"> |
14 <li><a class="reference internal" href="#memory-model-for-concurrent-operations"
id="id5">Memory Model for Concurrent Operations</a></li> | 14 <li><a class="reference internal" href="#memory-model-for-concurrent-operations"
id="id5">Memory Model for Concurrent Operations</a></li> |
15 <li><a class="reference internal" href="#atomic-memory-ordering-constraints" id=
"id6">Atomic Memory Ordering Constraints</a></li> | 15 <li><a class="reference internal" href="#atomic-memory-ordering-constraints" id=
"id6">Atomic Memory Ordering Constraints</a></li> |
16 <li><a class="reference internal" href="#volatile-memory-accesses" id="id7">Vola
tile Memory Accesses</a></li> | 16 <li><a class="reference internal" href="#volatile-memory-accesses" id="id7">Vola
tile Memory Accesses</a></li> |
17 </ul> | 17 </ul> |
18 </li> | 18 </li> |
19 <li><a class="reference internal" href="#threading" id="id8">Threading</a></li> | 19 <li><a class="reference internal" href="#threading" id="id8">Threading</a></li> |
20 <li><a class="reference internal" href="#setjmp-and-longjmp" id="id9"><code>setj
mp</code> and <code>longjmp</code></a></li> | 20 <li><a class="reference internal" href="#setjmp-and-longjmp" id="id9"><code>setj
mp</code> and <code>longjmp</code></a></li> |
21 <li><a class="reference internal" href="#c-exception-handling" id="id10">C++ Exc
eption Handling</a></li> | 21 <li><a class="reference internal" href="#c-exception-handling" id="id10">C++ Exc
eption Handling</a></li> |
22 <li><a class="reference internal" href="#inline-assembly" id="id11">Inline Assem
bly</a></li> | 22 <li><a class="reference internal" href="#inline-assembly" id="id11">Inline Assem
bly</a></li> |
23 <li><p class="first"><a class="reference internal" href="#future-directions" id=
"id12">Future Directions</a></p> | 23 <li><p class="first"><a class="reference internal" href="#future-directions" id=
"id12">Future Directions</a></p> |
24 <ul class="small-gap"> | 24 <ul class="small-gap"> |
25 <li><a class="reference internal" href="#simd" id="id13">SIMD</a></li> | 25 <li><a class="reference internal" href="#simd" id="id13">SIMD</a></li> |
26 <li><a class="reference internal" href="#inter-process-communication" id="id14">
Inter-Process Communication</a></li> | 26 <li><a class="reference internal" href="#inter-process-communication" id="id14">
Inter-Process Communication</a></li> |
27 <li><a class="reference internal" href="#posix-style-signal-handling" id="id15">
POSIX-style Signal Handling</a></li> | 27 <li><a class="reference internal" href="#posix-style-signal-handling" id="id15">
POSIX-style Signal Handling</a></li> |
28 <li><a class="reference internal" href="#computed-goto" id="id16">Computed <code
>goto</code></a></li> | 28 <li><a class="reference internal" href="#computed-goto" id="id16">Computed <code
>goto</code></a></li> |
29 </ul> | 29 </ul> |
30 </li> | 30 </li> |
31 </ul> | 31 </ul> |
32 </div> | 32 |
33 <section id="source-language-support"> | 33 </div><section id="source-language-support"> |
34 <h2 id="source-language-support">Source language support</h2> | 34 <h2 id="source-language-support">Source language support</h2> |
35 <p>The currently supported languages are C and C++. The PNaCl toolchain is | 35 <p>The currently supported languages are C and C++. The PNaCl toolchain is |
36 based on Clang 3.3, which fully supports C++11 and most of C11. A | 36 based on Clang 3.3, which fully supports C++11 and most of C11. A |
37 detailed status of the language support is available <a class="reference externa
l" href="http://clang.llvm.org/cxx_status.html">here</a>.</p> | 37 detailed status of the language support is available <a class="reference externa
l" href="http://clang.llvm.org/cxx_status.html">here</a>.</p> |
38 <p>For information on using languages other than C/C++, see the <a class="refere
nce internal" href="/native-client/faq.html#other-languages"><em>FAQ | 38 <p>For information on using languages other than C/C++, see the <a class="refere
nce internal" href="/native-client/faq.html#other-languages"><em>FAQ |
39 section on other languages</em></a>.</p> | 39 section on other languages</em></a>.</p> |
40 <p>As for the standard libraries, the PNaCl toolchain is currently based on | 40 <p>As for the standard libraries, the PNaCl toolchain is currently based on |
41 <code>libc++</code>, and the <code>newlib</code> standard C library (version is
available | 41 <code>libc++</code>, and the <code>newlib</code> standard C library (version is
available |
42 through the macro <code>NEWLIB_VERSION</code>). <code>libstdc++</code> is also s
upported | 42 through the macro <code>NEWLIB_VERSION</code>). <code>libstdc++</code> is also s
upported |
43 but its use is discouraged; see <a class="reference internal" href="/native-clie
nt/devguide/devcycle/building.html#building-cpp-libraries"><em>C++ standard libr
aries</em></a> for more | 43 but its use is discouraged; see <a class="reference internal" href="/native-clie
nt/devguide/devcycle/building.html#building-cpp-libraries"><em>C++ standard libr
aries</em></a> for more |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 <code>volatile</code> and atomics with same-thread signal handling would need | 207 <code>volatile</code> and atomics with same-thread signal handling would need |
208 to be carefully detailed.</p> | 208 to be carefully detailed.</p> |
209 </section><section id="computed-goto"> | 209 </section><section id="computed-goto"> |
210 <h3 id="computed-goto">Computed <code>goto</code></h3> | 210 <h3 id="computed-goto">Computed <code>goto</code></h3> |
211 <p>PNaCl currently doesn’t support computed <code>goto</code>, a non-stand
ard | 211 <p>PNaCl currently doesn’t support computed <code>goto</code>, a non-stand
ard |
212 extension to C used by some interpreters.</p> | 212 extension to C used by some interpreters.</p> |
213 <p>NaCl supports computed <code>goto</code>.</p> | 213 <p>NaCl supports computed <code>goto</code>.</p> |
214 </section></section></section> | 214 </section></section></section> |
215 | 215 |
216 {{/partials.standard_nacl_article}} | 216 {{/partials.standard_nacl_article}} |
OLD | NEW |