| 1 | <html>
|
|---|
| 2 |
|
|---|
| 3 | <head>
|
|---|
| 4 | <title>GCC Bugs</title>
|
|---|
| 5 | </head>
|
|---|
| 6 |
|
|---|
| 7 | <body>
|
|---|
| 8 | <h1>GCC Bugs</h1>
|
|---|
| 9 |
|
|---|
| 10 | <p>The latest version of this document is always available at
|
|---|
| 11 | <a href="http://gcc.gnu.org/bugs.html">http://gcc.gnu.org/bugs.html</a>.</p>
|
|---|
| 12 |
|
|---|
| 13 | <hr />
|
|---|
| 14 |
|
|---|
| 15 | <h2>Table of Contents</h2>
|
|---|
| 16 | <ul>
|
|---|
| 17 | <li><a href="#report">Reporting Bugs</a>
|
|---|
| 18 | <ul>
|
|---|
| 19 | <li><a href="#need">What we need</a></li>
|
|---|
| 20 | <li><a href="#dontwant">What we DON'T want</a></li>
|
|---|
| 21 | <li><a href="#where">Where to post it</a></li>
|
|---|
| 22 | <li><a href="#detailed">Detailed bug reporting instructions</a></li>
|
|---|
| 23 | <li><a href="#gnat">Detailed bug reporting instructions for GNAT</a></li>
|
|---|
| 24 | <li><a href="#pch">Detailed bug reporting instructions when using a precompiled header</a></li>
|
|---|
| 25 | </ul>
|
|---|
| 26 | </li>
|
|---|
| 27 | <li><a href="#known">Frequently Reported Bugs in GCC</a>
|
|---|
| 28 | <ul>
|
|---|
| 29 | <li><a href="#cxx">C++</a>
|
|---|
| 30 | <ul>
|
|---|
| 31 | <li><a href="#missing">Missing features</a></li>
|
|---|
| 32 | <li><a href="#fixed34">Bugs fixed in the 3.4 series</a></li>
|
|---|
| 33 | </ul>
|
|---|
| 34 | </li>
|
|---|
| 35 | <li><a href="#fortran">Fortran</a></li>
|
|---|
| 36 | </ul>
|
|---|
| 37 | </li>
|
|---|
| 38 | <li><a href="#nonbugs">Non-bugs</a>
|
|---|
| 39 | <ul>
|
|---|
| 40 | <li><a href="#nonbugs_general">General</a></li>
|
|---|
| 41 | <li><a href="#nonbugs_c">C</a></li>
|
|---|
| 42 | <li><a href="#nonbugs_cxx">C++</a>
|
|---|
| 43 | <ul>
|
|---|
| 44 | <li><a href="#upgrading">Common problems when upgrading the compiler</a></li>
|
|---|
| 45 | </ul>
|
|---|
| 46 | </li>
|
|---|
| 47 | </ul>
|
|---|
| 48 | </li>
|
|---|
| 49 | </ul>
|
|---|
| 50 |
|
|---|
| 51 | <hr />
|
|---|
| 52 |
|
|---|
| 53 | <h1><a name="report">Reporting Bugs</a></h1>
|
|---|
| 54 |
|
|---|
| 55 | <p>The main purpose of a bug report is to enable us to fix the bug. The
|
|---|
| 56 | most important prerequisite for this is that the report must be complete and
|
|---|
| 57 | self-contained, which we explain in detail below.</p>
|
|---|
| 58 |
|
|---|
| 59 | <p>Before you report a bug, please check the
|
|---|
| 60 | <a href="#known">list of well-known bugs</a> and, <strong>if possible
|
|---|
| 61 | in any way, try a current development snapshot</strong>.
|
|---|
| 62 | If you want to report a bug with versions of GCC before 3.1 we strongly
|
|---|
| 63 | recommend upgrading to the current release first.</p>
|
|---|
| 64 |
|
|---|
| 65 | <p>Before reporting that GCC compiles your code incorrectly, please
|
|---|
| 66 | compile it with <code>gcc -Wall</code> and see whether this shows
|
|---|
| 67 | anything wrong with your code that could be the cause instead of a bug
|
|---|
| 68 | in GCC.</p>
|
|---|
| 69 |
|
|---|
| 70 | <h2>Summarized bug reporting instructions</h2>
|
|---|
| 71 |
|
|---|
| 72 | <p>After this summary, you'll find detailed bug reporting
|
|---|
| 73 | instructions, that explain how to obtain some of the information
|
|---|
| 74 | requested in this summary.</p>
|
|---|
| 75 |
|
|---|
| 76 | <h3><a name="need">What we need</a></h3>
|
|---|
| 77 |
|
|---|
| 78 | <p>Please include in your bug report all of the following items, the first
|
|---|
| 79 | three of which can be obtained from the output of <code>gcc -v</code>:</p>
|
|---|
| 80 |
|
|---|
| 81 | <ul>
|
|---|
| 82 | <li>the exact version of GCC;</li>
|
|---|
| 83 | <li>the system type;</li>
|
|---|
| 84 | <li>the options given when GCC was configured/built;</li>
|
|---|
| 85 | <li>the complete command line that triggers the bug;</li>
|
|---|
| 86 | <li>the compiler output (error messages, warnings, etc.); and</li>
|
|---|
| 87 | <li>the <em>preprocessed</em> file (<code>*.i*</code>) that triggers the
|
|---|
| 88 | bug, generated by adding <code>-save-temps</code> to the complete
|
|---|
| 89 | compilation command, or, in the case of a bug report for the GNAT front end,
|
|---|
| 90 | a complete set of source files (see below).</li>
|
|---|
| 91 | </ul>
|
|---|
| 92 |
|
|---|
| 93 | <h3><a name="dontwant">What we do <strong>not</strong> want</a></h3>
|
|---|
| 94 |
|
|---|
| 95 | <ul>
|
|---|
| 96 | <li>A source file that <code>#include</code>s header files that are left
|
|---|
| 97 | out of the bug report (see above)</li>
|
|---|
| 98 |
|
|---|
| 99 | <li>That source file and a collection of header files.</li>
|
|---|
| 100 |
|
|---|
| 101 | <li>An attached archive (tar, zip, shar, whatever) containing all
|
|---|
| 102 | (or some :-) of the above.</li>
|
|---|
| 103 |
|
|---|
| 104 | <li>A code snippet that won't cause the compiler to produce the
|
|---|
| 105 | exact output mentioned in the bug report (e.g., a snippet with just
|
|---|
| 106 | a few lines around the one that <b>apparently</b> triggers the bug,
|
|---|
| 107 | with some pieces replaced with ellipses or comments for extra
|
|---|
| 108 | obfuscation :-)</li>
|
|---|
| 109 |
|
|---|
| 110 | <li>The location (URL) of the package that failed to build (we won't
|
|---|
| 111 | download it, anyway, since you've already given us what we need to
|
|---|
| 112 | duplicate the bug, haven't you? :-)</li>
|
|---|
| 113 |
|
|---|
| 114 | <li>An error that occurs only some of the times a certain file is
|
|---|
| 115 | compiled, such that retrying a sufficient number of times results in
|
|---|
| 116 | a successful compilation; this is a symptom of a hardware problem,
|
|---|
| 117 | not of a compiler bug (sorry)</li>
|
|---|
| 118 |
|
|---|
| 119 | <li>E-mail messages that complement previous, incomplete bug
|
|---|
| 120 | reports. Post a new, self-contained, full bug report instead, if
|
|---|
| 121 | possible as a follow-up to the original bug report</li>
|
|---|
| 122 |
|
|---|
| 123 | <li>Assembly files (<code>*.s</code>) produced by the compiler, or any
|
|---|
| 124 | binary files, such as object files, executables, core files, or
|
|---|
| 125 | precompiled header files</li>
|
|---|
| 126 |
|
|---|
| 127 | <li>Duplicate bug reports, or reports of bugs already fixed in the
|
|---|
| 128 | development tree, especially those that have already been reported
|
|---|
| 129 | as fixed last week :-)</li>
|
|---|
| 130 |
|
|---|
| 131 | <li>Bugs in the assembler, the linker or the C library. These are
|
|---|
| 132 | separate projects, with separate mailing lists and different bug
|
|---|
| 133 | reporting procedures</li>
|
|---|
| 134 |
|
|---|
| 135 | <li>Bugs in releases or snapshots of GCC not issued by the GNU
|
|---|
| 136 | Project. Report them to whoever provided you with the release</li>
|
|---|
|
|---|