r210295 - Remove old proposal notices
John McCall
rjmccall at apple.com
Wed Feb 4 18:38:42 PST 2015
> On Jun 5, 2014, at 4:17 PM, Richard Smith <richard at metafoo.co.uk> wrote:
> On Thu, Jun 5, 2014 at 3:11 PM, Alp Toker <alp at nuanti.com> wrote:
> Author: alp
> Date: Thu Jun 5 17:11:20 2014
> New Revision: 210295
>
> URL: http://llvm.org/viewvc/llvm-project?rev=210295&view=rev
> Log:
> Remove old proposal notices
>
> Let's just go ahead and assume the answer was 'I do'
>
> :)
>
> You can check what proposals have made it into the ABI here:
>
> http://mentorembedded.github.io/cxx-abi/abi.html
>
> For the ones that aren't in the ABI, having a comment explaining why we're using them and where they come from is useful. None of these three are in the ABI document yet; please back this out for now.
>
> John: any chance we could get the ABI document updated with these? (http://sourcerytools.com/pipermail/cxx-abi-dev/2012-January/000024.html)
After much delay, added. We don’t seem to get this right, though, at least not when the destination type isn’t dependent:
template <class T, class U> T fst(T, U);
struct A {
int x[3];
};
template <class T> decltype(fst(A{1,2},T())) foo(T t) {}
int main() {
foo(1);
}
We produce:
_Z3fooIiEDTcl3fstcv1AililLi1ELi2EEEcvT__EEES1_
It should be:
_Z3fooIiEDTcl3fsttl1ALi1ELi2EcvT__EEES1_
If you parenthesize the argument to A:
template <class T> decltype(fst(A({1,2}),T())) foo(T t) {}
We produce:
_Z3fooIiEDTcl3fstcv1AcvS0_ililLi1ELi2EEEcvT__EEES1_
It should be:
_Z3fooIiEDTcl3fstcv1AliLi1ELi2EcvT__EEES1_
John.
More information about the cfe-commits
mailing list