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 Software Development Compilers Debuggers
Licenses GPL
Implementation C

Tweet this project Short link

Rss Recent releases

Changes: Many optimizer improvements were made. Version 3.0 of the OpenMP specification is now supported for the C, C++, and Fortran compilers. "Uninitialized" warnings do not require enabling optimization anymore. The experimental support for the upcoming ISO C++ standard C++0x was improved. Several new targets and target specific improvements were introduced, while several old targets were obsoleted or removed. Many bugs were fixed.

  • Rrelease-mid
  •  28 Jan 2009 18:32
  • Rrelease-after

Changes: This release contains fixes for regressions in GCC 4.3.2 relative to previous releases of GCC.

  • Rrelease-mid
  •  01 Sep 2008 20:14
  • Rrelease-after

Changes: Several bugs were fixed. Decimal floating point variables are now aligned to their natural boundaries when they are passed on the stack for i386. The "-mcld" command line option was added for backward compatibility on some operating systems.

  • Rrelease-mid
  •  30 Apr 2008 07:15
  • Rrelease-after

Changes: Lots of bugs were fixed. Optimizer flags were added. Several language enhancements were implemented.

  • Rrelease-mid
  •  07 Mar 2008 16:30
  • Rrelease-after

Changes: This release contains fixes for regressions in 4.2.2 relative to previous releases.

Rss Recent comments

Rcomment-before 26 Jan 2008 05:34 Rcomment-trans sigra Rcomment-after

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.

Rcomment-before 10 Feb 2007 14:46 Rcomment-trans gmfpanda Rcomment-after

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.

Rcomment-before 24 Dec 2006 02:42 Rcomment-trans Theimprover Rcomment-after

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

Rcomment-before 17 Dec 2006 10:17 Rcomment-trans mikaelt Rcomment-after

Re: GCC

> You are probably wrong. Independent

> analysis has shown it's quiet same in

> performance as earlier version. GCC 4.0

> has not been optimized for speed yet.

That's right, but now with the 4.1 things are much better. 4.1 should be several percentages faster than 4.0.

Rcomment-before 25 Oct 2005 17:36 Rcomment-trans Pfv2 Rcomment-after

Re: missing version...
4.0 is out now ;)

D9c0bdf16cd8ce2325fa2b4d2a4f2acb_thumb

Project Spotlight

Fimex

A library for geospatial data file manipulation.

Fce4a8753d549149f110e96efcfc53b7_thumb

Project Spotlight

3rd Edition Dungeons & Dragons Character Generator

A character generator for Dungeons and Dragons, version 3.5.