Projects / gcc

gcc

The GNU Compiler Collection contains frontends for C, C++, Objective-C, Fortran, Java, and Ada as well as libraries for these languages. It is a full-featured ANSI C compiler with support for K&R C as well. GCC provides many levels of source code error checking traditionally provided by other tools (such as lint), produces debugging information, and can perform many different optimizations to the resulting object code.

Tags
Licenses
Implementation

RSS Recent releases

  •  01 Jun 2013 21:29

Release Notes: C++11 ref-qualifiers were implemented. The C++11 <chrono> std::chrono::system_clock and std::chrono::steady_clock classes were changed. Various minor bugs were fixed.

Release Notes: GCC is now implemented in C++. DWARF4 is now the default when generating DWARF debug information (tool support required). A new general optimization level "-Og" was introduced. AddressSanitizer, a fast memory error detector, was added. ThreadSanitizer was added (x86-64 only) for instrumenting instructions to detect data races. C++11 was enhanced with support for the thread_local keyword, for attribute syntax, for the alignment specifier, and for inheriting constructors. Support for AArch64 as well as ARMv8 AArch32 extensions was added. Various other improvements and bugfixes were made.

  •  27 Apr 2012 19:18

    Release Notes: This major release contains substantial new functionality not available in GCC 4.6.x or previous GCC releases.

    •  19 Nov 2011 02:59

    Release Notes: This release fixes over 100 reported problems.

    •  29 Jun 2011 15:38

    Release Notes: This is a bug-fix release containing fixes for regressions and serious bugs, with over 150 bugs fixed since the previous release.

    RSS Recent comments

    06 Mar 2011 11:12 brudaz Thumbs up

    is still better than Clang/LLVM?

    08 Oct 2009 12:01 gwr3n

    How does the gcc java compiler differ from the standard javac provided with the JDK?

    Roberto Rossi

    05 Sep 2009 20:05 Avatar labney Thumbs up

    My experience is that Ada has the most helpful and easily understood error messages. Its strong typing helps to keep you out of trouble. C++ on the other hand gives you plenty of rope to hang yourself with.

    26 Jan 2008 05:34 Avatar sigra Thumbs up

    Statement about providing source code checking is a truth with modifications
    >GCC provides many levels of source code error
    checking traditionally provided by other tools (such as
    lint)

    This is unfortunately a truth with modifications. It may be
    true for some frontends, such as Ada, but definitely not
    for C/C++.

    The Ada frontend (GNAT) is very helpful. If an identifier is
    typed wrong, GNAT suggests the correct name. If a
    variable is not modified, GNAT can suggest declaring it as
    a constant. (This feature has helped me catch some
    errors that would have taken me significantly longer time
    to find the hard way, for example when I intended to
    modify a variable and then forgot to write the statement
    to do it.) If one forgets a semicolon, GNAT says
    missing ';'. (If you ever tried to use g++ you sure know
    that it usually spews out 20 pages of obscure error
    messages in this case.) GNAT reports the location of
    errors with both line number and column number (g++
    only reports line number). GNAT can even warn about
    style errors, such as wrong indentation, padding or
    overlong lines.

    But GCC does not intend to be that helpful for C++
    developers. If a wish for such a feature is requested, it is
    usually rejected within half an hour or so. This is the case
    for warning
    about variables that could be declared constant.
    The motivation was: "Isn't this a task for lint-like tool?
    GCC isn't such thing." (Note how that statement directly
    contradicts what the freshmeat summary says?)

    The whole Ada language is designed to catch errors as
    early as possible. Preferably at compile time. If that is not
    possible, they should be caught as early as possible at
    runtime. A common error is to dereference null pointers.
    C++ is not designed for correctness but I still believe
    that some things can be done to remedy the situation,
    like optionally warning about dereferencing pointers
    without checking for null. But that feature
    request went
    the same way.

    So maybe the GCC develpers think that just because
    someone chose to develop in C/C++ they couldn't care
    less about code correctness. That may be true of course,
    but they forgot that not all who do so actually chose it.
    They might have to work on existing code written in a
    language chosen by someone else.

    Maybe the GCC develoers just want to keep a huge
    advantage of Ada over C/C++ by not even allowing
    people register wishes for code checking features in the
    C/C++ frontends? But I plead them to reconsider this.
    And I can assure them that even if a few little helpful
    checks are added to C/C++, it will not become Ada.
    There will still be a huge advantage.

    10 Feb 2007 14:46 gmfpanda

    Re: Comparisons issue

    > The new C++ ABI in the GCC 3.0 series
    > uses address comparisons, rather than
    > string compares, to determine type
    > equality.

    And I much prefer this over old string compares.

    Screenshot

    Project Spotlight

    Berkeley Yacc

    A high-quality yacc variant.

    Screenshot

    Project Spotlight

    confluence-el

    An Emacs extension for interacting with a Confluence wiki.