This is the mail archive of the
mailing list for the GCC project.
Re: Builtins in `std'
> Portable to other compilers? It already ain't. :-) In fact, it's not
> close, and the interactions with the C header stuff is going to be
> especially hard to write portably.
...which is one of the reasons why c_shadow is lagging...
> I don't want to solve all the problems all at once, necessarily, but I
> do want to fix the numerous regressions we've got here since 2.95.
gcc 2.95.2 is completely broken WRT std::types and getting c++ headers
correct. This is one of the major reasons current libstdc++-v3 snapshots
won't compile with this older compiler.
What regressions (other than your examples) are you talking about?
There's been a bunch of work on this, and I'm of the mind that gcc-3 is
in much better shape than gcc-2.95.x.
> I remain convinced that the way to do this is to remove the builtins
> from `std' (a two-liner), and change the library to use `__builtin'
> (mechanical). Going forward in 3.1, we then make it utterly illegal
> to mnually redeclare/redefine a `__builtin' function, and then remove
> all kinds of (broken) code from duplicate_decls, and life becomes just
> a little bit better. :-)
__builtins don't exist for everything, and are target/platform
dependent. See the math headers, which attempt to deal with the
possibilities correctly. (And do a decent job, IMHO)