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

Recent releases

  •  01 Jun 2013 13:17

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

    •  27 Mar 2013 20:41

      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 12:42

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

        •  19 Nov 2011 00:10

          Release Notes: This release fixes over 100 reported problems.

          •  29 Jun 2011 12:11

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

            Recent comments

            06 Mar 2011 11:12 brudaz

            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?

            <a href="http://sites.google.com/site/robros/">Roberto Rossi</a>

            05 Sep 2009 20:05 labney

            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 sigra

            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

            OpenStack4j

            A Fluent OpenStack client API for Java.

            Screenshot

            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.