author | stechong |
Wed, 20 Oct 2010 11:19:31 -0500 | |
changeset 2165 | 2a7b5eccb0bc |
parent 1641 | 2b3996fc09a1 |
permissions | -rw-r--r-- |
1641
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
2 |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
3 |
<head> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
4 |
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
5 |
<meta http-equiv="Content-Style-Type" content="text/css" /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
6 |
<meta name="LASTUPDATED" content="06/17/05 11:09:43" /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
7 |
<title>access_errors</title> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
8 |
<link rel="StyleSheet" href="../../book.css" type="text/css"/> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
9 |
</head> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
10 |
|
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
11 |
<body> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
12 |
<h3>gcc_extensions</h3> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
13 |
<p>Controls the acceptance of GNU C language extensions. </p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
14 |
<h5>Syntax</h5> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
15 |
<p class="code">#pragma gcc_extensions on | off | reset |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
16 |
</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
17 |
<h5>Targets</h5> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
18 |
All platforms.<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
19 |
<h5>Remarks</h5> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
20 |
<p>If you enable this pragma, the compiler accepts GNU C extensions in C source code. This includes the following non-ANSI C extensions:</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
21 |
<ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
22 |
<li>Initialization of automatic struct or array variables with non-const values</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
23 |
</ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
24 |
<blockquote> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
25 |
<p class="listing"> int foo(int arg)<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
26 |
{<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
27 |
int arr[2] = { arg, arg+1 };<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
28 |
}</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
29 |
</blockquote> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
30 |
<ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
31 |
<li class="code">sizeof( void ) == 1</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
32 |
<li class="code">sizeof( function-type ) == 1</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
33 |
<li>Limited support for GCC statements and declarations within expressions</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
34 |
</ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
35 |
<blockquote> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
36 |
<p class="listing">pragma gcc_extensions on<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
37 |
#define POW2(n) ({ int i,r; for(r=1,i=n; i>0; --i) r<<=1; r;})</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
38 |
<p>This feature only works for expressions in function bodies and does not support code that requires any form of C++ exception handling (for example, throwing or catching exceptions or creating local or temporary class objects that require a destructor call).</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
39 |
<p class="listing">int main()<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
40 |
{<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
41 |
return POW2(4);<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
42 |
}</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
43 |
</blockquote> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
44 |
<ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
45 |
<li>Macro redefinitions without a previous #undef.</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
46 |
<li>The GCC keyword <span class="code">typeof</span>. See “The __typeof__() and typeof() operators”, “Initialization of Local Arrays and Structures” for a description of these extensions.</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
47 |
<li>Function pointer arithmetic supported</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
48 |
<li><span class="code">void*</span> arithmetic supported</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
49 |
<li><span class="code">__builtin_constant_p (<expr>)</span> supported</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
50 |
<li>Forward declarations of arrays of incomplete type supported</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
51 |
<li>Pre-C99 designated initializer syntax (deprecated) supported</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
52 |
</ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
53 |
<blockquote> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
54 |
<p class="listing">#pragma gcc_extensions on<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
55 |
struct S { int a, b, b; } s = { c:3, b:2, a:1 };</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
56 |
</blockquote> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
57 |
<ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
58 |
<li>Conditionals with omitted Operands supported</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
59 |
</ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
60 |
<blockquote> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
61 |
<p class="listing"> #pragma gcc_extensions on<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
62 |
int x, y, z;<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
63 |
x = y ?: z;<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
64 |
Outputs:<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
65 |
x = y ? y ? z;</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
66 |
</blockquote> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
67 |
<ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
68 |
<li><span class="code">long __builtin_expect (long exp, long c)</span> now accepted</li> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
69 |
</ul> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
70 |
<p>This pragma corresponds to the Enable <a href="../pragmas/p_gcc_extensions.htm">GCC Extensions</a> setting . To check the global optimizer, use <span class="code">__option (gcc_extensions)</span>, described in <a href="../symbols/sym_settings.htm">Checking Settings</a>. The default setting is <span class="code">off</span>.<br /> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
71 |
</p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
72 |
<p></p> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
73 |
<div id="footer">Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. <br>License: <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></div> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
74 |
|
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
75 |
|
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
76 |
</body> |
2b3996fc09a1
revised x86 compiler dates, graphics, CSS, and release notes
fturovic <frank.turovich@nokia.com>
parents:
0
diff
changeset
|
77 |
</html> |