[PATCH] D60349: [COFF, ARM64] Fix ABI implementation of struct returns

Richard Townsend (Arm) via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 29 07:09:56 PDT 2019


richard.townsend.arm added a comment.

The current diff (196894) seems to have the same `std::setw` issue as the previous one. Here's what it's trying to compile:

  _MRTIMP2 _Smanip<streamsize> __cdecl setw(streamsize wide)
  {	// manipulator to set width
        return (_Smanip<streamsize>(&swfun, wide));
   }

Here's the definition for `_Smanip`:

    template<class _Arg>
      struct _Smanip
        {	// store function pointer and argument value
          _Smanip(void (__cdecl *_Left)(ios_base&, _Arg), _Arg _Val)
  		: _Pfun(_Left), _Manarg(_Val)
  		{	// construct from function pointer and argument value
  		}
  
                 void (__cdecl *_Pfun)(ios_base&, _Arg);	// the function pointer
                     _Arg _Manarg;	// the argument value
       };


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60349/new/

https://reviews.llvm.org/D60349





More information about the cfe-commits mailing list