Statement-Attributes.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2017 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <title>Using the GNU Compiler Collection (GCC): Statement Attributes</title>
  20. <meta name="description" content="Using the GNU Compiler Collection (GCC): Statement Attributes">
  21. <meta name="keywords" content="Using the GNU Compiler Collection (GCC): Statement Attributes">
  22. <meta name="resource-type" content="document">
  23. <meta name="distribution" content="global">
  24. <meta name="Generator" content="makeinfo">
  25. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="C-Extensions.html#C-Extensions" rel="up" title="C Extensions">
  30. <link href="Attribute-Syntax.html#Attribute-Syntax" rel="next" title="Attribute Syntax">
  31. <link href="Enumerator-Attributes.html#Enumerator-Attributes" rel="prev" title="Enumerator Attributes">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.smallquotation {font-size: smaller}
  36. div.display {margin-left: 3.2em}
  37. div.example {margin-left: 3.2em}
  38. div.indentedblock {margin-left: 3.2em}
  39. div.lisp {margin-left: 3.2em}
  40. div.smalldisplay {margin-left: 3.2em}
  41. div.smallexample {margin-left: 3.2em}
  42. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style:oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nocodebreak {white-space:nowrap}
  54. span.nolinebreak {white-space:nowrap}
  55. span.roman {font-family:serif; font-weight:normal}
  56. span.sansserif {font-family:sans-serif; font-weight:normal}
  57. ul.no-bullet {list-style: none}
  58. -->
  59. </style>
  60. </head>
  61. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  62. <a name="Statement-Attributes"></a>
  63. <div class="header">
  64. <p>
  65. Next: <a href="Attribute-Syntax.html#Attribute-Syntax" accesskey="n" rel="next">Attribute Syntax</a>, Previous: <a href="Enumerator-Attributes.html#Enumerator-Attributes" accesskey="p" rel="prev">Enumerator Attributes</a>, Up: <a href="C-Extensions.html#C-Extensions" accesskey="u" rel="up">C Extensions</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  66. </div>
  67. <hr>
  68. <a name="Statement-Attributes-1"></a>
  69. <h3 class="section">6.36 Statement Attributes</h3>
  70. <a name="index-Statement-Attributes"></a>
  71. <p>GCC allows attributes to be set on null statements. See <a href="Attribute-Syntax.html#Attribute-Syntax">Attribute Syntax</a>,
  72. for details of the exact syntax for using attributes. Other attributes are
  73. available for functions (see <a href="Function-Attributes.html#Function-Attributes">Function Attributes</a>), variables
  74. (see <a href="Variable-Attributes.html#Variable-Attributes">Variable Attributes</a>), labels (see <a href="Label-Attributes.html#Label-Attributes">Label Attributes</a>), enumerators
  75. (see <a href="Enumerator-Attributes.html#Enumerator-Attributes">Enumerator Attributes</a>), and for types (see <a href="Type-Attributes.html#Type-Attributes">Type Attributes</a>).
  76. </p>
  77. <p>This example uses the <code>fallthrough</code> statement attribute to indicate that
  78. the <samp>-Wimplicit-fallthrough</samp> warning should not be emitted:
  79. </p>
  80. <div class="smallexample">
  81. <pre class="smallexample">switch (cond)
  82. {
  83. case 1:
  84. bar (1);
  85. __attribute__((fallthrough));
  86. case 2:
  87. &hellip;
  88. }
  89. </pre></div>
  90. <dl compact="compact">
  91. <dt><code>fallthrough</code></dt>
  92. <dd><a name="index-fallthrough-statement-attribute"></a>
  93. <p>The <code>fallthrough</code> attribute with a null statement serves as a
  94. fallthrough statement. It hints to the compiler that a statement
  95. that falls through to another case label, or user-defined label
  96. in a switch statement is intentional and thus the
  97. <samp>-Wimplicit-fallthrough</samp> warning must not trigger. The
  98. fallthrough attribute may appear at most once in each attribute
  99. list, and may not be mixed with other attributes. It can only
  100. be used in a switch statement (the compiler will issue an error
  101. otherwise), after a preceding statement and before a logically
  102. succeeding case label, or user-defined label.
  103. </p>
  104. </dd>
  105. </dl>
  106. </body>
  107. </html>