diff options
Diffstat (limited to 'devdocs/gcc~13/hints-implementation.html')
| -rw-r--r-- | devdocs/gcc~13/hints-implementation.html | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/devdocs/gcc~13/hints-implementation.html b/devdocs/gcc~13/hints-implementation.html new file mode 100644 index 00000000..8390cca8 --- /dev/null +++ b/devdocs/gcc~13/hints-implementation.html @@ -0,0 +1,11 @@ +<div class="section-level-extent" id="Hints-implementation"> <div class="nav-panel"> <p> Next: <a href="structures-unions-enumerations-and-bit-fields-implementation" accesskey="n" rel="next">Structures, Unions, Enumerations, and Bit-Fields</a>, Previous: <a href="arrays-and-pointers-implementation" accesskey="p" rel="prev">Arrays and Pointers</a>, Up: <a href="c-implementation" accesskey="u" rel="up">C Implementation-Defined Behavior</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="section" id="Hints"><span>4.8 Hints<a class="copiable-link" href="#Hints"> ¶</a></span></h1> <ul class="itemize mark-bullet"> <li>The extent to which suggestions made by using the <code class="code">register</code> storage-class specifier are effective (C90 6.5.1, C99 and C11 6.7.1). <p>The <code class="code">register</code> specifier affects code generation only in these ways: </p> <ul class="itemize mark-bullet"> <li>When used as part of the register variable extension, see <a class="ref" href="explicit-register-variables">Variables in Specified Registers</a>. </li> +<li>When <samp class="option">-O0</samp> is in use, the compiler allocates distinct stack memory for all variables that do not have the <code class="code">register</code> storage-class specifier; if <code class="code">register</code> is specified, the variable may have a shorter lifespan than the code would indicate and may never be placed in memory. </li> +<li>On some rare x86 targets, <code class="code">setjmp</code> doesn’t save the registers in all circumstances. In those cases, GCC doesn’t allocate any variables in registers unless they are marked <code class="code">register</code>. </li> +</ul> </li> +<li>The extent to which suggestions made by using the inline function specifier are effective (C99 and C11 6.7.4). <p>GCC will not inline any functions if the <samp class="option">-fno-inline</samp> option is used or if <samp class="option">-O0</samp> is used. Otherwise, GCC may still be unable to inline a function for many reasons; the <samp class="option">-Winline</samp> option may be used to determine if a function has not been inlined and why not. </p> </li> +</ul> </div><div class="_attribution"> + <p class="_attribution-p"> + © Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br> + <a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Hints-implementation.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Hints-implementation.html</a> + </p> +</div> |
