⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bug-criteria.html

📁 gcc手册
💻 HTML
字号:
<html lang="en">

<head>

<title>Using the GNU Compiler Collection (GCC)</title>

<meta http-equiv="Content-Type" content="text/html">

<meta name="description" content="Using the GNU Compiler Collection (GCC)">

<meta name="generator" content="makeinfo 4.3">

<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">

<!--

Copyright &copy; 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,

1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.



   <p>Permission is granted to copy, distribute and/or modify this document

under the terms of the GNU Free Documentation License, Version 1.2 or

any later version published by the Free Software Foundation; with the

Invariant Sections being "GNU General Public License" and "Funding

Free Software", the Front-Cover texts being (a) (see below), and with

the Back-Cover Texts being (b) (see below).  A copy of the license is

included in the section entitled "GNU Free Documentation License".



   <p>(a) The FSF's Front-Cover Text is:



   <p>A GNU Manual



   <p>(b) The FSF's Back-Cover Text is:



   <p>You have freedom to copy and modify this GNU Manual, like GNU

     software.  Copies published by the Free Software Foundation raise

     funds for GNU development.-->

</head>

<body>

<div class="node">

<p>

Node:<a name="Bug%20Criteria">Bug Criteria</a>,

Next:<a rel="next" accesskey="n" href="Bug-Lists.html#Bug%20Lists">Bug Lists</a>,

Up:<a rel="up" accesskey="u" href="Bugs.html#Bugs">Bugs</a>

<hr><br>

</div>



<h3 class="section">Have You Found a Bug?</h3>



   <p>If you are not sure whether you have found a bug, here are some guidelines:



     <ul>

<li>If the compiler gets a fatal signal, for any input whatever, that is a

compiler bug.  Reliable compilers never crash.



     <li>If the compiler produces invalid assembly code, for any input whatever

(except an <code>asm</code> statement), that is a compiler bug, unless the

compiler reports errors (not just warnings) which would ordinarily

prevent the assembler from being run.



     <li>If the compiler produces valid assembly code that does not correctly

execute the input source code, that is a compiler bug.



     <p>However, you must double-check to make sure, because you may have a

program whose behavior is undefined, which happened by chance to give

the desired results with another C or C++ compiler.



     <p>For example, in many nonoptimizing compilers, you can write <code>x;</code>

at the end of a function instead of <code>return x;</code>, with the same

results.  But the value of the function is undefined if <code>return</code>

is omitted; it is not a bug when GCC produces different results.



     <p>Problems often result from expressions with two increment operators,

as in <code>f (*p++, *p++)</code>.  Your previous compiler might have

interpreted that expression the way you intended; GCC might

interpret it another way.  Neither compiler is wrong.  The bug is

in your code.



     <p>After you have localized the error to a single source line, it should

be easy to check for these things.  If your program is correct and

well defined, you have found a compiler bug.



     </p><li>If the compiler produces an error message for valid input, that is a

compiler bug.



     <li>If the compiler does not produce an error message for invalid input,

that is a compiler bug.  However, you should note that your idea of

"invalid input" might be my idea of "an extension" or "support

for traditional practice".



     <li>If you are an experienced user of one of the languages GCC supports, your

suggestions for improvement of GCC are welcome in any case. 

</ul>



   </body></html>



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -