As a (non-developer) user, may I humbly submit a slightly different view: The change of license is an Event, which needs to be marked in concrete by a version number change. All future mainline development will be under the GPLv3. However, there are many people who (due to legal or commercial pressures, amongst others) are required to continue under GPLv2, and there doesn't seem to be a good pragmatic reason to actively penalise those people.
I think that having one more GPLv2 release, and then all future releases under GPLv3, creates a discontinuity in the compiler between licenses which may be unhelpful because the first GPLv3 gcc will be technically different to the last GPLv2 gcc. This means that the decision about which to use will be a combination of license issues and technical issues. So, could there be a simultaneous release of gcc under GPLv2 and GPLv3, identical in all respects except for the license? The GPLv2 release will represent the best-quality compiler that the project can deliver, as a base for those who must continue to support it. The GPLv3 release will be the reference point for future development, and will be a known quantity in technical terms. The GPLv2 compiler could be gcc 4.2.1, and the GPLv3 compiler could be gcc 4.3.0. There is an issue that people have been hearing about the new functionalities that gcc 4.3 will have, but it shouldn't be too hard to "market" the concept that 4.3 is now a license change version, and 4.4 will be the compiler that 4.3 was going to be. Perhaps the simultaneous release could be done on July 31, which is iirc the FSF's deadline for GPLv2 releases. Extending the gcc 4.2.1 release date might allow some last-minute bug-fixes to make it in there. Compiler vendors etc will have an increased workload maintaining the separability of GPLv2 and GPLv3 code during the transition to the new license, and it would seem that the transition will take quite some time (years?), but I'm sure that they will develop procedures to make it manageable. Cheers, Rob Brown.