This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [C++ PATCH] Add sorry() when mangling CALL_EXPR
Giovanni Bajo wrote:
Mike Stump <mrs@apple.com> wrote:
I'd hope that we can pester the abi group (Mark? Jason?) and have them
invent something, put it up on their web site, and then we can just do
it. Now, while it is fresh in our minds, is a great time to do this.
The issue is more than the ABI, the core language group are considering
whether C++ should allow this at all. We don't want to go implementing
an ABI for something that is not C++. The two language issues are
1) is 'A<sizeof(complicated_expression)> t' ok in a non-deduced context.
There's not much of a problem implementing it, simply an ABI specification
issue
2) is 'A<sizeof(complicated_dependent_expression)> Foo (deduced_arg_list)'
allowed in deduced contexts? Here there is an implementation difficulty,
because semantic errors in complicated_dependent_expression cause deduction
failure, not errors. IIRC the core group wanted input from library
implementors (boost et al), as to whether this functionality was really
needed.
If #2 turns out to be unwanted (and made invalid), it would be strange
to allow #1.
But the point is that GCC is currently segfaulting (with no error message)
with the attacched testcode. I made my own testcase, but we have at least 2
opened PRs which make GCC crash exactly for this. I firmly believe that
sorry() is better than a segfault, even from an user standpoint, no matter
what. Especially if it gives to the user a little clue about what GCC/ABI
can't handle.
sorry is probably the best fix for 3.3 anyway. We are unlikely to reach
consensus in the 3.3.1 timeframe.
nathan
--
Nathan Sidwell :: http://www.codesourcery.com :: CodeSourcery LLC
The voices in my head said this was stupid too
nathan@codesourcery.com :: http://www.planetfall.pwp.blueyonder.co.uk