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