# Submitting Bug Reports using GNATS

## gnatsweb and gccbug

GNATS, the GNU bug tracking system, is used to track GCC bug reports. Before submitting a bug report, please read the general instructions.

The preferred way to submit a bug report is by means of the gnatsweb interface. Make sure you include an e-mail address, so we can inform you when the status of your report changes.

Another way is to use the `gccbug` program that is automatically installed with current versions of GCC, which submits the bug report by e-mail.

Both techniques use the same GNATS bug database.

## Filling out a report

The bug report form provides a number of fields; you'll need to fill-out most of those (as indicated below) to provide a complete report. The fields have the following purpose:

Originator
  Your name.
Organization
  Your organization. You can leave this field blank.
Confidential
  This field is unused and set to 'no'. All bug reports, including sample code, are publicly accessible.
Synopsis
  A one-line description of the problem; something like "GCC 2.95 does not foo", "objc crashes when doing bar".
Severity
  Can be one of
  critical
    GCC is completely not operational; no work-around known.
  serious
    GCC is not working properly; a work-around is possible.
  non-critical
    Report indicates minor problem.
Priority
  Can be one of
  high
    A solution is necessary as soon as possible. This is reserved to GCC maintainers.
  medium
    The problem should be solved in the next release.
  low
    The problem should be solved in a future release.
Category
  This indicates the GCC subproject which is affected by the problem. Currently, it can be one of
  ada
    A problem with the Ada compiler front end, libraries or tools.
  bootstrap
    GCC fails to bootstrap. This should be filed only if a bootstrap failure prevails for an extended period of time (at least one week) on any platform (and possibly not-so-common conditions like a read-only srcdir), or non-mainstream platforms.
  c++
    A problem with the C++ compiler front end.
  c
    A problem with the C compiler front end.
  debug
    A problem with generating debugging information.
  driver
    A problem with a compiler driver, namely `gcc`, `g++`, `g77`, `gcj` or `gnat`.
  fortran
    A problem with the Fortran compiler front end.
  inline-asm
    A problem caused by use of inline assembly.
  java
    A problem with the Java compiler front end.
  libf2c
    A problem in the Fortran runtime library.
  libgcj
    A problem in the Java runtime library.
  libobjc
    A problem in the Objective C runtime library.
  libstdc++
    A problem in the Standard C++ runtime library.
  middle-end
    A problem in the internal compiler passes.
  objc
    A problem with the Objective C compiler.
  optimization
    A problem only occurring under optimization.
  preprocessor
    A problem with the C preprocessor.
  target
    The problem depends on the specific target architecture.
  web
    There is an error or omission on the Web pages.
  other
    The problem is in none of these categories.
Class
  A classification of the problem; one of
  doc-bug
    The documentation is incorrect.
  accepts-illegal
    GCC fails to reject erroneous code.
  rejects-legal
    GCC gives an error message for correct code.
  wrong-code
    The machine code generated by GCC is incorrect.
  ice-on-legal-code
    GCC gives an Internal Compiler Error (ICE) for correct code.
  ice-on-illegal-code
    GCC gives an ICE instead of reporting an error.
  pessimizes-code
    GCC misses an important optimization opportunity.
  sw-bug
    Software bug of some other class than above.
  change-request
    A feature in GCC is missing.
  support
    I need help with GCC.
Release
  GCC version, as obtained from 'gcc -v' (one line).
Environment
  Information about your operating system version, hardware architecture, and environment settings that affect GCC.
Description
  Precise description of the problem. You should put the error messages printed by GCC here; source code should go into the next section.
How-To-Repeat
  Please put the complete source code to reproduce the problem here. The gccbug script currently does not support file attachments. Instead, if you have multiple files, include them uuencoded (compressing them before if they are large). If you use gnatsweb, you can use the file attachments button instead.
Fix
  How to correct or work around the problem, if known (multiple lines).