===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/codingconventions.html,v
retrieving revision 1.81
@@ -82,7 +82,7 @@
</ul>
-<h2><a name="Documentation">Documentation</a></h2>
+<h2 id="Documentation">Documentation</h2>
<p>Documentation, both of user interfaces and of internals, must be
maintained and kept up to date. In particular:</p>
@@ -109,7 +109,7 @@
</ul>
-<h2><a name="ChangeLogs">ChangeLogs</a></h2>
+<h2 id="ChangeLogs">ChangeLogs</h2>
<p>GCC requires ChangeLog entries for documentation changes; for the web
pages (apart from <code>java/</code> and <code>libstdc++/</code>) the CVS
@@ -137,7 +137,7 @@
<code>java/58</code> is the actual number of the PR) at the top
of the ChangeLog entry.</p>
-<h2><a name="Portability">Portability</a></h2>
+<h2 id="Portability">Portability</h2>
<p>There are strict requirements for portability of code in GCC to
older systems whose compilers do not implement all of the
@@ -201,13 +201,13 @@
necessary, to break mutually recursive cycles.</p>
-<h2><a name="Makefiles">Makefiles</a></h2>
+<h2 id="Makefiles">Makefiles</h2>
<p><code>touch</code> should never be used in GCC Makefiles. Instead
of <code>touch foo</code> always use <code>$(STAMP) foo</code>.</p>
-<h2><a name="Testsuite">Testsuite Conventions</a></h2>
+<h2 id="Testsuite">Testsuite Conventions</h2>
<p>Every language or library feature, whether standard or a GNU
extension, and every warning GCC can give, should have testcases
@@ -237,7 +237,7 @@
to the testsuite.</p>
-<h2><a name="Diagnostics">Diagnostics Conventions</a></h2>
+<h2 id="Diagnostics">Diagnostics Conventions</h2>
<ul>
<li>Use of the <code>input_location</code> global, and of the
@@ -288,7 +288,7 @@
</ul>
-<h2><a name="Spelling">Spelling, terminology and markup</a></h2>
+<h2 id="Spelling">Spelling, terminology and markup</h2>
<p>The following conventions of spelling and terminology apply
throughout GCC, including the manuals, web pages, diagnostics,
@@ -678,24 +678,24 @@
</ul>
-<h2><a name="CandCxx">C and C++ Language Conventions</a></h2>
+<h2 id="CandCxx">C and C++ Language Conventions</h2>
<p>
The following conventions apply to both C and C++.
</p>
-<h3><a name="C_Options">Compiler Options</a></h3>
+<h3 id="C_Options">Compiler Options</h3>
<p>
The compiler must build cleanly with <code>-Wall -Wextra</code>.
</p>
-<h3><a name="C_Language">Language Use</a></h3>
+<h3 id="C_Language">Language Use</h3>
-<h4><a name="Assertions">Assertions</a></h4>
+<h4 id="Assertions">Assertions</h4>
<p>Code should use <code>gcc_assert (EXPR)</code> to check invariants.
Use <code>gcc_unreachable ()</code> to mark places that should never be
@@ -711,7 +711,7 @@
by using <code>gcc_checking_assert</code>.</p>
-<h4><a name="Character">Character Testing</a></h4>
+<h4 id="Character">Character Testing</h4>
<p>Code testing properties of characters from user source code should
use macros such as <code>ISALPHA</code> from <code>safe-ctype.h</code>
@@ -720,7 +720,7 @@
language accepted.</p>
-<h4><a name="Error">Error Node Testing</a></h4>
+<h4 id="Error">Error Node Testing</h4>
<p>Testing for <code>ERROR_MARK</code>s should be done by comparing
against <code>error_mark_node</code> rather than by comparing the
@@ -728,13 +728,13 @@
href="https://gcc.gnu.org/ml/gcc-patches/2000-10/msg00792.html">message</a>.</p>
-<h4><a name="Generated">Parameters Affecting Generated Code</a></h4>
+<h4 id="Generated">Parameters Affecting Generated Code</h4>
<p>Internal numeric parameters that may affect generated code should
be controlled by <code>--param</code> rather than being hardcoded.</p>
-<h4><a name="C_Inlining">Inlining Functions</a></h4>
+<h4 id="C_Inlining">Inlining Functions</h4>
<p>
Inlining functions only when
@@ -744,15 +744,15 @@
</p>
-<h3><a name="C_Formatting">Formatting Conventions</a></h3>
+<h3 id="C_Formatting">Formatting Conventions</h3>
-<h4><a name="Line">Line Length</a></h4>
+<h4 id="Line">Line Length</h4>
<p>Lines shall be at most 80 columns.</p>
-<h4><a name="C_Names">Names</a></h4>
+<h4 id="C_Names">Names</h4>
<p>
Macros names should be in <code>ALL_CAPS</code>
@@ -771,7 +771,7 @@
</p>
-<h4><a name="Expressions">Expressions</a></h4>
+<h4 id="Expressions">Expressions</h4>
<p>
Code in GCC should use the following formatting conventions:
@@ -802,7 +802,7 @@
</table>
-<h2><a name="Cxx_Conventions">C++ Language Conventions</a></h2>
+<h2 id="Cxx_Conventions">C++ Language Conventions</h2>
<p>
The following conventions apply only to C++.
@@ -814,7 +814,7 @@
</p>
-<h3><a name="Cxx_Language">Language Use</a></h3>
+<h3 id="Cxx_Language">Language Use</h3>
<p>
C++ is a complex language,
@@ -834,7 +834,7 @@
component maintainers make the final decisions about those components.)
</p>
-<h4><a name="Variable">Variable Definitions</a></h4>
+<h4 id="Variable">Variable Definitions</h4>
<p>
Variables should be defined at the point of first use,
@@ -853,7 +853,7 @@
</p>
-<h4><a name="Struct_Use">Struct Definitions</a></h4>
+<h4 id="Struct_Use">Struct Definitions</h4>
<p>
Use the <code>struct</code> keyword for
@@ -865,7 +865,7 @@
<a href="codingrationale.html#struct">Rationale and Discussion</a>
</p>
-<h4><a name="Class_Use">Class Definitions</a></h4>
+<h4 id="Class_Use">Class Definitions</h4>
<p>
Use the <code>class</code> keyword for
@@ -920,7 +920,7 @@
</p>
-<h4><a name="Constructors">Constructors and Destructors</a></h4>
+<h4 id="Constructors">Constructors and Destructors</h4>
<p>
All constructors should initialize data members
@@ -936,7 +936,7 @@
<a href="codingrationale.html#constructors">Rationale and Discussion</a>
</p>
-<h4><a name="Conversions">Conversions</a></h4>
+<h4 id="Conversions">Conversions</h4>
<p>
Single argument constructors should nearly always be declared explicit.
@@ -951,7 +951,7 @@
</p>
-<h4><a name="Over_Func">Overloading Functions</a></h4>
+<h4 id="Over_Func">Overloading Functions</h4>
<p>
Overloading functions is permitted,
@@ -965,7 +965,7 @@
</p>
-<h4><a name="Over_Oper">Overloading Operators</a></h4>
+<h4 id="Over_Oper">Overloading Operators</h4>
<p>
Overloading operators is permitted,
@@ -982,7 +982,7 @@
</p>
-<h4><a name="Default">Default Arguments</a></h4>
+<h4 id="Default">Default Arguments</h4>
<p>
Default arguments are another type of function overloading,
@@ -996,7 +996,7 @@
</p>
-<h4><a name="Cxx_Inlining">Inlining Functions</a></h4>
+<h4 id="Cxx_Inlining">Inlining Functions</h4>
<p>
Constructors and destructors, even those with empty bodies,
@@ -1006,7 +1006,7 @@
</p>
-<h4><a name="Template_Use">Templates</a></h4>
+<h4 id="Template_Use">Templates</h4>
<p>
To avoid excessive compiler size,
@@ -1015,7 +1015,7 @@
</p>
-<h4><a name="Namespace_Use">Namespaces</a></h4>
+<h4 id="Namespace_Use">Namespaces</h4>
<p>
Namespaces are encouraged.
@@ -1033,7 +1033,7 @@
<a href="codingrationale.html#namespaces">Rationale and Discussion</a>
</p>
-<h4><a name="RTTI">RTTI and <code>dynamic_cast</code></a></h4>
+<h4 id="RTTI">RTTI and <code>dynamic_cast</code></h4>
<p>
Run-time type information (RTTI) is permitted
@@ -1048,7 +1048,7 @@
</p>
-<h4><a name="Casts">Other Casts</a></h4>
+<h4 id="Casts">Other Casts</h4>
<p>
C-style casts should not be used.
@@ -1060,7 +1060,7 @@
</p>
-<h4><a name="Exceptions">Exceptions</a></h4>
+<h4 id="Exceptions">Exceptions</h4>
<p>
Exceptions and throw specifications are not permitted
@@ -1072,7 +1072,7 @@
</p>
-<h4><a name="Standard_Library">The Standard Library</a></h4>
+<h4 id="Standard_Library">The Standard Library</h4>
<p>
Use of the standard library is permitted.
@@ -1095,10 +1095,10 @@
</p>
-<h3><a name="Cxx_Formatting">Formatting Conventions</a></h3>
+<h3 id="Cxx_Formatting">Formatting Conventions</h3>
-<h4><a name="Cxx_Names">Names</a></h4>
+<h4 id="Cxx_Names">Names</h4>
<p>
When structs and/or classes have member functions,
@@ -1116,7 +1116,7 @@
</p>
-<h4><a name="Struct_Form">Struct Definitions</a></h4>
+<h4 id="Struct_Form">Struct Definitions</h4>
<p>
Note that the rules for classes do not apply to structs.
@@ -1124,7 +1124,7 @@
</p>
-<h4><a name="Class_Form">Class Definitions</a></h4>
+<h4 id="Class_Form">Class Definitions</h4>
<p>
If the entire class definition fits on a single line, put it on a single line.
@@ -1204,7 +1204,7 @@
</code></pre></blockquote>
-<h4><a name="Member_Form">Class Member Definitions</a></h4>
+<h4 id="Member_Form">Class Member Definitions</h4>
<p>
Define all members outside the class definition.
@@ -1278,7 +1278,7 @@
</code></pre></blockquote>
-<h4><a name="Template_Form">Templates</a></h4>
+<h4 id="Template_Form">Templates</h4>
<p>
A declaration following a template parameter list
@@ -1291,7 +1291,7 @@
</p>
-<h4><a name="ExternC">Extern "C"</a></h4>
+<h4 id="ExternC">Extern "C"</h4>
<p>
Prefer an <code>extern "C"</code> block to a declaration qualifier.
@@ -1318,7 +1318,7 @@
Definitions within the body of an <code>extern "C"</code> block are not indented.
</p>
-<h4><a name="Namespace_Form">Namespaces</a></h4>
+<h4 id="Namespace_Form">Namespaces</h4>
<p>
Open a namespace with the namespace name
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/codingrationale.html,v
retrieving revision 1.4
@@ -26,7 +26,7 @@
<h3>Language Use</h3>
-<h4><a name="variables">Variable Definitions</a></h4>
+<h4 id="variables">Variable Definitions</h4>
<p>
Defining variables when they are first needed
@@ -49,7 +49,7 @@
</code></pre></blockquote>
-<h4><a name="struct">Struct Definitions</a></h4>
+<h4 id="struct">Struct Definitions</h4>
<p>
In the C++ standard,
@@ -64,7 +64,7 @@
</p>
-<h4><a name="class">Class Definitions</a></h4>
+<h4 id="class">Class Definitions</h4>
<p>
Forgetting to write a special member function is a known programming problem.
@@ -131,7 +131,7 @@
</p>
-<h4><a name="constructors">Constructors and Destructors</a></h4>
+<h4 id="constructors">Constructors and Destructors</h4>
<p>
The compiler implicitly initializes all non-POD fields.
@@ -143,7 +143,7 @@
are almost certainly incorrect.
</p>
-<h4><a name="conversions">Conversions</a></h4>
+<h4 id="conversions">Conversions</h4>
<p>
C++ uses single-argument constructors for implicit type conversion.
@@ -157,7 +157,7 @@
</p>
-<h4><a name="overfunc">Overloading Functions</a></h4>
+<h4 id="overfunc">Overloading Functions</h4>
<p>
Function overloading can be confusing.
@@ -259,7 +259,7 @@
</p>
-<h4><a name="overoper">Overloading Operators</a></h4>
+<h4 id="overoper">Overloading Operators</h4>
<p>
Using <code>[]</code> to index a vector is unsurprising,
@@ -268,7 +268,7 @@
</p>
-<h4><a name="default">Default Arguments</a></h4>
+<h4 id="default">Default Arguments</h4>
<p>
Expensive default arguments can cause hard-to-identify performance problems.
@@ -285,7 +285,7 @@
</p>
-<h4><a name="namespace">Namespaces</a></h4>
+<h4 id="namespace">Namespaces</h4>
<p>
Putting <code>using</code> directives
@@ -298,14 +298,14 @@
</p>
-<h4><a name="RTTI">RTTI and <code>dynamic_cast</code></a></h4>
+<h4 id="RTTI">RTTI and <code>dynamic_cast</code></h4>
<p>
Disabling RTTI will save space in the compiler.
</p>
-<h4><a name="casts">Other Casts</a></h4>
+<h4 id="casts">Other Casts</h4>
<p>
C++-style casts are very explicit in the intended transformation.
@@ -313,7 +313,7 @@
</p>
-<h4><a name="exceptions">Exceptions</a></h4>
+<h4 id="exceptions">Exceptions</h4>
<p>
The current compiler code is not exception safe.
@@ -338,7 +338,7 @@
or <code>unique_ptr</code> (from C++11).
</p>
-<h4><a name="stdlib">The Standard Library</a></h4>
+<h4 id="stdlib">The Standard Library</h4>
<p>
At present, C++ provides no great advantage for i18n.
@@ -349,7 +349,7 @@
<h3>Formatting Conventions</h3>
-<h4><a name="names">Names</a></h4>
+<h4 id="names">Names</h4>
<p>
Prefixing data members with <code>m_</code>