Quoting "Joseph S. Myers" <jos...@codesourcery.com>:

On Wed, 29 Apr 2009, Joern Rennecke wrote:

What are your thoughts on using gcc extensions for gcc-in-cxx ?

I believe we agreed in a previous discussion to aim for building with the
intersection of C++98/C++03 and C++ as supported by GCC 3.4 (including
making sure at an appropriate point that it builds with a non-GCC
compiler, probably an EDG-based one such as the Intel compiler).  Though
bearing in mind that PPL doesn't build with GCC before 4.0, the GCC
version required for building with GCC might increase (though I think
increasing beyond 4.1 would be a bad idea for some time yet).

I think we should distinguish here between the language we want to support
for bootstrapping versus the language we want to be use for builds in general
to allow convenient type checking, and to support configurations that
are not essential for bootstrapping, like ones with multiple target
architectures.

When compiling for a single target, we could still use standard enums
in the interface even where the enums are target dependent.
Although that defeats the purpose of the target vector (it is not interchangeable with any other target vector), it allows you
to bootstrap the compiler, and then you can use that compiler to build
a multi-targeted gcc which requires the gcc extension.

For the generated-enum-in-macro problem, we could use a plain integral type
as the variable type and a cast to the enum when reading as a fallback
mechanism.

But allowing the statement expression for gcc would give better type checking.

Reply via email to