GCC 4.7 Release Series — Changes, New Features, and Fixes

GCC 4.7 Release Series

Changes, New Features, and Fixes

Caveats

General Optimizer Improvements

into:
char *bar (const char *a)
{
size_t tmp = strlen (a);
char *p = malloc (tmp + 2); if (p == NULL) return p;
memcpy (p, a, tmp); memcpy (p + tmp, "/", 2); return p;
}

or for hosted compilations where stpcpy is available in the runtime and headers provide its prototype, e.g.
void foo (char *a, const char *b, const char *c, const char *d)
{
strcpy (a, b); strcat (a, c); strcat (a, d);
}

can be optimized into:
void foo (char *a, const char *b, const char *c, const char *d)
{
strcpy (stpcpy (stpcpy (a, b), c), d);
}

New Languages and Language specific improvements

Ada

C family

C

C++

Runtime Library (libstdc++)

Fortran

Go

New Targets and Target Specific Improvements

ARM

AVR

void set_portb (uint8_t value)
{
asm volatile ("out %i0, %1" :: "n" (&PORTB), "r" (value) : "memory");
}
The offset between an I/O address and the RAM address for that I/O location is device-specific. This offset is taken into account when printing a RAM address with the %i modifier so that the address is suitable to be used as operand in an I/O command. The address must be a constant integer known at compile time.

C6X

CR16

Epiphany

IA-32/x86-64

MIPS

PowerPC/PowerPC64

SH

SPARC

TILE-Gx/TILEPro

Other significant improvements

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.7.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).

The Go front end in the 4.7.1 release fully supports the Go 1 language standard.

GCC 4.7.2

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.7.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).

GCC 4.7.3

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.7.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).

GCC 4.7.4

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.7.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).