[1/3] msvcirt: Add stub of class ios (try 2)
Iván Matellanes
matellanesivan at gmail.com
Sat Jul 4 09:24:37 CDT 2015
Try 2: fix test failures on 64-bit VMs
---
dlls/msvcirt/msvcirt.c | 472 ++++++++++++++++++++++++++++++++++++++++++--
dlls/msvcirt/msvcirt.h | 25 +++
dlls/msvcirt/msvcirt.spec | 184 ++++++++---------
dlls/msvcrt20/msvcrt20.spec | 180 ++++++++---------
dlls/msvcrt40/msvcrt40.spec | 180 ++++++++---------
5 files changed, 748 insertions(+), 293 deletions(-)
diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index 960cd90..36d0215 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -54,13 +54,27 @@ streambuf* __thiscall streambuf_setbuf(streambuf*, char*, int);
void __thiscall streambuf_setg(streambuf*, char*, char*, char*);
void __thiscall streambuf_setp(streambuf*, char*, char*);
+/* class ios */
+struct _ostream;
typedef struct {
- LPVOID VTable;
-} class_ios;
+ const vtable_ptr *vtable;
+ streambuf *sb;
+ ios_io_state state;
+ int special[4];
+ int delbuf;
+ struct _ostream *tie;
+ ios_flags flags;
+ int precision;
+ char fill;
+ int width;
+ int do_lock;
+ CRITICAL_SECTION lock;
+} ios;
-typedef struct {
- LPVOID VTable;
-} class_ostream;
+/* class ostream */
+typedef struct _ostream {
+ const vtable_ptr *vtable;
+} ostream;
typedef struct {
LPVOID VTable;
@@ -68,6 +82,8 @@ typedef struct {
/* ??_7streambuf@@6B@ */
extern const vtable_ptr MSVCP_streambuf_vtable;
+/* ??_7ios@@6B@ */
+extern const vtable_ptr MSVCP_ios_vtable;
#ifndef __GNUC__
void __asm_dummy_vtables(void) {
@@ -84,11 +100,14 @@ void __asm_dummy_vtables(void) {
VTABLE_ADD_FUNC(streambuf_underflow)
VTABLE_ADD_FUNC(streambuf_pbackfail)
VTABLE_ADD_FUNC(streambuf_doallocate));
+ __ASM_VTABLE(ios,
+ VTABLE_ADD_FUNC(ios_vector_dtor));
#ifndef __GNUC__
}
#endif
DEFINE_RTTI_DATA0(streambuf, 0, ".?AVstreambuf@@")
+DEFINE_RTTI_DATA0(ios, 0, ".?AVios@@")
/* ??0streambuf@@IAE at PADH@Z */
/* ??0streambuf@@IEAA at PEADH@Z */
@@ -683,22 +702,432 @@ void __thiscall streambuf_dbp(streambuf *this)
}
}
-/******************************************************************
- * ??1ios@@UAE at XZ (MSVCRTI.@)
- * class ios & __thiscall ios::-ios<<(void)
- */
-DEFINE_THISCALL_WRAPPER(MSVCIRT_ios_sl_void,4)
-void * __thiscall MSVCIRT_ios_sl_void(class_ios * _this)
+/* ??0ios@@IAE at ABV0@@Z */
+/* ??0ios@@IEAA at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(ios_copy_ctor, 8)
+ios* __thiscall ios_copy_ctor(ios *this, const ios *copy)
{
- FIXME("(%p) stub\n", _this);
- return _this;
+ FIXME("(%p %p) stub\n", this, copy);
+ return this;
+}
+
+/* ??0ios@@IAE at XZ */
+/* ??0ios@@IEAA at XZ */
+DEFINE_THISCALL_WRAPPER(ios_ctor, 4)
+ios* __thiscall ios_ctor(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return this;
+}
+
+/* ??0ios@@QAE at PAVstreambuf@@@Z */
+/* ??0ios@@QEAA at PEAVstreambuf@@@Z */
+DEFINE_THISCALL_WRAPPER(ios_sb_ctor, 8)
+ios* __thiscall ios_sb_ctor(ios *this, streambuf *sb)
+{
+ FIXME("(%p %p) stub\n", this, sb);
+ return this;
+}
+
+/* ??1ios@@UAE at XZ */
+/* ??1ios@@UEAA at XZ */
+DEFINE_THISCALL_WRAPPER(ios_dtor, 4)
+void __thiscall ios_dtor(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ??4ios@@IAEAAV0 at ABV0@@Z */
+/* ??4ios@@IEAAAEAV0 at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(ios_assign, 8)
+ios* __thiscall ios_assign(ios *this, const ios *rhs)
+{
+ FIXME("(%p %p) stub\n", this, rhs);
+ return this;
+}
+
+/* ??7ios@@QBEHXZ */
+/* ??7ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_op_not, 4)
+int __thiscall ios_op_not(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ??Bios@@QBEPAXXZ */
+/* ??Bios@@QEBAPEAXXZ */
+DEFINE_THISCALL_WRAPPER(ios_op_void, 4)
+void* __thiscall ios_op_void(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return NULL;
+}
+
+/* ??_Eios@@UAEPAXI at Z */
+DEFINE_THISCALL_WRAPPER(ios_vector_dtor, 8)
+ios* __thiscall ios_vector_dtor(ios *this, unsigned int flags)
+{
+ TRACE("(%p %x)\n", this, flags);
+ if (flags & 2) {
+ /* we have an array, with the number of elements stored before the first object */
+ INT_PTR i, *ptr = (INT_PTR *)this-1;
+
+ for (i = *ptr-1; i >= 0; i--)
+ ios_dtor(this+i);
+ MSVCRT_operator_delete(ptr);
+ } else {
+ ios_dtor(this);
+ if (flags & 1)
+ MSVCRT_operator_delete(this);
+ }
+ return this;
+}
+
+/* ??_Gios@@UAEPAXI at Z */
+DEFINE_THISCALL_WRAPPER(ios_scalar_dtor, 8)
+ios* __thiscall ios_scalar_dtor(ios *this, unsigned int flags)
+{
+ TRACE("(%p %x)\n", this, flags);
+ ios_dtor(this);
+ if (flags & 1) MSVCRT_operator_delete(this);
+ return this;
+}
+
+/* ?bad at ios@@QBEHXZ */
+/* ?bad at ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_bad, 4)
+int __thiscall ios_bad(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?bitalloc at ios@@SAJXZ */
+LONG __cdecl ios_bitalloc(void)
+{
+ FIXME("() stub\n");
+ return 0;
+}
+
+/* ?clear at ios@@QAEXH at Z */
+/* ?clear at ios@@QEAAXH at Z */
+DEFINE_THISCALL_WRAPPER(ios_clear, 8)
+void __thiscall ios_clear(ios *this, int state)
+{
+ FIXME("(%p %d) stub\n", this, state);
+}
+
+/* ?clrlock at ios@@QAAXXZ */
+/* ?clrlock at ios@@QEAAXXZ */
+void __cdecl ios_clrlock(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ?delbuf at ios@@QAEXH at Z */
+/* ?delbuf at ios@@QEAAXH at Z */
+DEFINE_THISCALL_WRAPPER(ios_delbuf_set, 8)
+void __thiscall ios_delbuf_set(ios *this, int delete)
+{
+ FIXME("(%p %d) stub\n", this, delete);
+}
+
+/* ?delbuf at ios@@QBEHXZ */
+/* ?delbuf at ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_delbuf_get, 4)
+int __thiscall ios_delbuf_get(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?dec@@YAAAVios@@AAV1@@Z */
+/* ?dec@@YAAEAVios@@AEAV1@@Z */
+ios* __cdecl ios_dec(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return this;
+}
+
+/* ?eof at ios@@QBEHXZ */
+/* ?eof at ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_eof, 4)
+int __thiscall ios_eof(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?fail at ios@@QBEHXZ */
+/* ?fail at ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_fail, 4)
+int __thiscall ios_fail(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?fill at ios@@QAEDD at Z */
+/* ?fill at ios@@QEAADD at Z */
+DEFINE_THISCALL_WRAPPER(ios_fill_set, 8)
+char __thiscall ios_fill_set(ios *this, char fill)
+{
+ FIXME("(%p %d) stub\n", this, fill);
+ return EOF;
+}
+
+/* ?fill at ios@@QBEDXZ */
+/* ?fill at ios@@QEBADXZ */
+DEFINE_THISCALL_WRAPPER(ios_fill_get, 4)
+char __thiscall ios_fill_get(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return EOF;
+}
+
+/* ?flags at ios@@QAEJJ at Z */
+/* ?flags at ios@@QEAAJJ at Z */
+DEFINE_THISCALL_WRAPPER(ios_flags_set, 8)
+LONG __thiscall ios_flags_set(ios *this, LONG flags)
+{
+ FIXME("(%p %x) stub\n", this, flags);
+ return 0;
+}
+
+/* ?flags at ios@@QBEJXZ */
+/* ?flags at ios@@QEBAJXZ */
+DEFINE_THISCALL_WRAPPER(ios_flags_get, 4)
+LONG __thiscall ios_flags_get(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?good at ios@@QBEHXZ */
+/* ?good at ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_good, 4)
+int __thiscall ios_good(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?hex@@YAAAVios@@AAV1@@Z */
+/* ?hex@@YAAEAVios@@AEAV1@@Z */
+ios* __cdecl ios_hex(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return this;
+}
+
+/* ?init at ios@@IAEXPAVstreambuf@@@Z */
+/* ?init at ios@@IEAAXPEAVstreambuf@@@Z */
+DEFINE_THISCALL_WRAPPER(ios_init, 8)
+void __thiscall ios_init(ios *this, streambuf *sb)
+{
+ FIXME("(%p %p) stub\n", this, sb);
+}
+
+/* ?iword at ios@@QBEAAJH at Z */
+/* ?iword at ios@@QEBAAEAJH at Z */
+DEFINE_THISCALL_WRAPPER(ios_iword, 8)
+LONG* __thiscall ios_iword(const ios *this, int index)
+{
+ FIXME("(%p %d) stub\n", this, index);
+ return NULL;
+}
+
+/* ?lock at ios@@QAAXXZ */
+/* ?lock at ios@@QEAAXXZ */
+void __cdecl ios_lock(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ?lockbuf at ios@@QAAXXZ */
+/* ?lockbuf at ios@@QEAAXXZ */
+void __cdecl ios_lockbuf(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ?lockc at ios@@KAXXZ */
+void __cdecl ios_lockc(void)
+{
+ FIXME("() stub\n");
+}
+
+/* ?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ */
+/* ?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ */
+DEFINE_THISCALL_WRAPPER(ios_lockptr, 4)
+CRITICAL_SECTION* __thiscall ios_lockptr(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return NULL;
+}
+
+/* ?oct@@YAAAVios@@AAV1@@Z */
+/* ?oct@@YAAEAVios@@AEAV1@@Z */
+ios* __cdecl ios_oct(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return this;
+}
+
+/* ?precision at ios@@QAEHH at Z */
+/* ?precision at ios@@QEAAHH at Z */
+DEFINE_THISCALL_WRAPPER(ios_precision_set, 8)
+int __thiscall ios_precision_set(ios *this, int prec)
+{
+ FIXME("(%p %d) stub\n", this, prec);
+ return 0;
+}
+
+/* ?precision at ios@@QBEHXZ */
+/* ?precision at ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_precision_get, 4)
+int __thiscall ios_precision_get(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?pword at ios@@QBEAAPAXH at Z */
+/* ?pword at ios@@QEBAAEAPEAXH at Z */
+DEFINE_THISCALL_WRAPPER(ios_pword, 8)
+void** __thiscall ios_pword(const ios *this, int index)
+{
+ FIXME("(%p %d) stub\n", this, index);
+ return NULL;
+}
+
+/* ?rdbuf at ios@@QBEPAVstreambuf@@XZ */
+/* ?rdbuf at ios@@QEBAPEAVstreambuf@@XZ */
+DEFINE_THISCALL_WRAPPER(ios_rdbuf, 4)
+streambuf* __thiscall ios_rdbuf(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return NULL;
+}
+
+/* ?rdstate at ios@@QBEHXZ */
+/* ?rdstate at ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_rdstate, 4)
+int __thiscall ios_rdstate(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?setf at ios@@QAEJJ at Z */
+/* ?setf at ios@@QEAAJJ at Z */
+DEFINE_THISCALL_WRAPPER(ios_setf, 8)
+LONG __thiscall ios_setf(ios *this, LONG flags)
+{
+ FIXME("(%p %x) stub\n", this, flags);
+ return 0;
+}
+
+/* ?setf at ios@@QAEJJJ at Z */
+/* ?setf at ios@@QEAAJJJ at Z */
+DEFINE_THISCALL_WRAPPER(ios_setf_mask, 12)
+LONG __thiscall ios_setf_mask(ios *this, LONG flags, LONG mask)
+{
+ FIXME("(%p %x %x) stub\n", this, flags, mask);
+ return 0;
+}
+
+/* ?setlock at ios@@QAAXXZ */
+/* ?setlock at ios@@QEAAXXZ */
+void __cdecl ios_setlock(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ?sync_with_stdio at ios@@SAXXZ */
+void __cdecl ios_sync_with_stdio(void)
+{
+ FIXME("() stub\n");
+}
+
+/* ?tie at ios@@QAEPAVostream@@PAV2@@Z */
+/* ?tie at ios@@QEAAPEAVostream@@PEAV2@@Z */
+DEFINE_THISCALL_WRAPPER(ios_tie_set, 8)
+ostream* __thiscall ios_tie_set(ios *this, ostream *ostr)
+{
+ FIXME("(%p %p) stub\n", this, ostr);
+ return NULL;
+}
+
+/* ?tie at ios@@QBEPAVostream@@XZ */
+/* ?tie at ios@@QEBAPEAVostream@@XZ */
+DEFINE_THISCALL_WRAPPER(ios_tie_get, 4)
+ostream* __thiscall ios_tie_get(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return NULL;
+}
+
+/* ?unlock at ios@@QAAXXZ */
+/* ?unlock at ios@@QEAAXXZ */
+void __cdecl ios_unlock(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ?unlockbuf at ios@@QAAXXZ */
+/* ?unlockbuf at ios@@QEAAXXZ */
+void __cdecl ios_unlockbuf(ios *this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ?unlockc at ios@@KAXXZ */
+void __cdecl ios_unlockc(void)
+{
+ FIXME("() stub\n");
+}
+
+/* ?unsetf at ios@@QAEJJ at Z */
+/* ?unsetf at ios@@QEAAJJ at Z */
+DEFINE_THISCALL_WRAPPER(ios_unsetf, 8)
+LONG __thiscall ios_unsetf(ios *this, LONG flags)
+{
+ FIXME("(%p %x) stub\n", this, flags);
+ return 0;
+}
+
+/* ?width at ios@@QAEHH at Z */
+/* ?width at ios@@QEAAHH at Z */
+DEFINE_THISCALL_WRAPPER(ios_width_set, 8)
+int __thiscall ios_width_set(ios *this, int width)
+{
+ FIXME("(%p %d) stub\n", this, width);
+ return 0;
+}
+
+/* ?width at ios@@QBEHXZ */
+/* ?width at ios@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(ios_width_get, 4)
+int __thiscall ios_width_get(const ios *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?xalloc at ios@@SAHXZ */
+int __cdecl ios_xalloc(void)
+{
+ FIXME("() stub\n");
+ return 0;
}
/******************************************************************
* ??0ostrstream@@QAE at XZ (MSVCRTI.@)
*/
DEFINE_THISCALL_WRAPPER(MSVCIRT_ostrstream_ctor,8)
-void * __thiscall MSVCIRT_ostrstream_ctor(class_ostream *this, BOOL virt_init)
+void * __thiscall MSVCIRT_ostrstream_ctor(ostream *this, BOOL virt_init)
{
FIXME("(%p %x) stub\n", this, virt_init);
return this;
@@ -708,7 +1137,7 @@ void * __thiscall MSVCIRT_ostrstream_ctor(class_ostream *this, BOOL virt_init)
* ??1ostrstream@@UAE at XZ (MSVCRTI.@)
*/
DEFINE_THISCALL_WRAPPER(MSVCIRT_ostrstream_dtor,4)
-void __thiscall MSVCIRT_ostrstream_dtor(class_ios *base)
+void __thiscall MSVCIRT_ostrstream_dtor(ios *base)
{
FIXME("(%p) stub\n", base);
}
@@ -718,7 +1147,7 @@ void __thiscall MSVCIRT_ostrstream_dtor(class_ios *base)
* class ostream & __thiscall ostream::operator<<(unsigned char)
*/
DEFINE_THISCALL_WRAPPER(MSVCIRT_operator_sl_uchar,8)
-void * __thiscall MSVCIRT_operator_sl_uchar(class_ostream * _this, unsigned char ch)
+void * __thiscall MSVCIRT_operator_sl_uchar(ostream * _this, unsigned char ch)
{
FIXME("(%p)->(%c) stub\n", _this, ch);
return _this;
@@ -729,7 +1158,7 @@ void * __thiscall MSVCIRT_operator_sl_uchar(class_ostream * _this, unsigned char
* class ostream & __thiscall ostream::operator<<(int)
*/
DEFINE_THISCALL_WRAPPER(MSVCIRT_operator_sl_int,8)
-void * __thiscall MSVCIRT_operator_sl_int(class_ostream * _this, int integer)
+void * __thiscall MSVCIRT_operator_sl_int(ostream * _this, int integer)
{
FIXME("(%p)->(%d) stub\n", _this, integer);
return _this;
@@ -740,7 +1169,7 @@ void * __thiscall MSVCIRT_operator_sl_int(class_ostream * _this, int integer)
* class ostream & __thiscall ostream::operator<<(char const *)
*/
DEFINE_THISCALL_WRAPPER(MSVCIRT_operator_sl_pchar,8)
-void * __thiscall MSVCIRT_operator_sl_pchar(class_ostream * _this, const char * string)
+void * __thiscall MSVCIRT_operator_sl_pchar(ostream * _this, const char * string)
{
FIXME("(%p)->(%s) stub\n", _this, debugstr_a(string));
return _this;
@@ -751,7 +1180,7 @@ void * __thiscall MSVCIRT_operator_sl_pchar(class_ostream * _this, const char *
* class ostream & __thiscall ostream::operator<<(class ostream & (__cdecl*)(class ostream &))
*/
DEFINE_THISCALL_WRAPPER(MSVCIRT_operator_sl_callback,8)
-void * __thiscall MSVCIRT_operator_sl_callback(class_ostream * _this, class_ostream * (__cdecl*func)(class_ostream*))
+void * __thiscall MSVCIRT_operator_sl_callback(ostream * _this, ostream * (__cdecl*func)(ostream*))
{
TRACE("%p, %p\n", _this, func);
return func(_this);
@@ -761,7 +1190,7 @@ void * __thiscall MSVCIRT_operator_sl_callback(class_ostream * _this, class_ostr
* ?endl@@YAAAVostream@@AAV1@@Z (MSVCRTI.@)
* class ostream & __cdecl endl(class ostream &)
*/
-void * CDECL MSVCIRT_endl(class_ostream * _this)
+void * CDECL MSVCIRT_endl(ostream * _this)
{
FIXME("(%p)->() stub\n", _this);
return _this;
@@ -771,7 +1200,7 @@ void * CDECL MSVCIRT_endl(class_ostream * _this)
* ?ends@@YAAAVostream@@AAV1@@Z (MSVCRTI.@)
* class ostream & __cdecl ends(class ostream &)
*/
-void * CDECL MSVCIRT_ends(class_ostream * _this)
+void * CDECL MSVCIRT_ends(ostream * _this)
{
FIXME("(%p)->() stub\n", _this);
return _this;
@@ -839,6 +1268,7 @@ static void init_io(void *base)
{
#ifdef __x86_64__
init_streambuf_rtti(base);
+ init_ios_rtti(base);
#endif
}
diff --git a/dlls/msvcirt/msvcirt.h b/dlls/msvcirt/msvcirt.h
index 4751e8c..5ec369b 100644
--- a/dlls/msvcirt/msvcirt.h
+++ b/dlls/msvcirt/msvcirt.h
@@ -24,11 +24,36 @@ typedef LONG streamoff;
typedef LONG streampos;
typedef enum {
+ IOSTATE_goodbit = 0x0,
+ IOSTATE_eofbit = 0x1,
+ IOSTATE_failbit = 0x2,
+ IOSTATE_badbit = 0x4
+} ios_io_state;
+
+typedef enum {
SEEKDIR_beg = 0,
SEEKDIR_cur = 1,
SEEKDIR_end = 2
} ios_seek_dir;
+typedef enum {
+ FLAGS_skipws = 0x1,
+ FLAGS_left = 0x2,
+ FLAGS_right = 0x4,
+ FLAGS_internal = 0x8,
+ FLAGS_dec = 0x10,
+ FLAGS_oct = 0x20,
+ FLAGS_hex = 0x40,
+ FLAGS_showbase = 0x80,
+ FLAGS_showpoint = 0x100,
+ FLAGS_uppercase = 0x200,
+ FLAGS_showpos = 0x400,
+ FLAGS_scientific = 0x800,
+ FLAGS_fixed = 0x1000,
+ FLAGS_unitbuf = 0x2000,
+ FLAGS_stdio = 0x4000
+} ios_flags;
+
extern void* (__cdecl *MSVCRT_operator_new)(SIZE_T);
extern void (__cdecl *MSVCRT_operator_delete)(void*);
diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec
index 36d42ee..dc66bfa 100644
--- a/dlls/msvcirt/msvcirt.spec
+++ b/dlls/msvcirt/msvcirt.spec
@@ -36,12 +36,12 @@
@ stub -arch=win64 ??0ifstream@@QEAA at PEBDHH@Z
@ stub -arch=win32 ??0ifstream@@QAE at XZ # __thiscall ifstream::ifstream(void)
@ stub -arch=win64 ??0ifstream@@QEAA at XZ
-@ stub -arch=win32 ??0ios@@IAE at ABV0@@Z # __thiscall ios::ios(class ios const &)
-@ stub -arch=win64 ??0ios@@IEAA at AEBV0@@Z
-@ stub -arch=win32 ??0ios@@IAE at XZ # __thiscall ios::ios(void)
-@ stub -arch=win64 ??0ios@@IEAA at XZ
-@ stub -arch=win32 ??0ios@@QAE at PAVstreambuf@@@Z # __thiscall ios::ios(class streambuf *)
-@ stub -arch=win64 ??0ios@@QEAA at PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??0ios@@IAE at ABV0@@Z(ptr ptr) ios_copy_ctor
+@ cdecl -arch=win64 ??0ios@@IEAA at AEBV0@@Z(ptr ptr) ios_copy_ctor
+@ thiscall -arch=win32 ??0ios@@IAE at XZ(ptr) ios_ctor
+@ cdecl -arch=win64 ??0ios@@IEAA at XZ(ptr) ios_ctor
+@ thiscall -arch=win32 ??0ios@@QAE at PAVstreambuf@@@Z(ptr ptr) ios_sb_ctor
+@ cdecl -arch=win64 ??0ios@@QEAA at PEAVstreambuf@@@Z(ptr ptr) ios_sb_ctor
@ stub -arch=win32 ??0iostream@@IAE at ABV0@@Z # __thiscall iostream::iostream(class iostream const &)
@ stub -arch=win64 ??0iostream@@IEAA at AEBV0@@Z
@ stub -arch=win32 ??0iostream@@IAE at XZ # __thiscall iostream::iostream(void)
@@ -140,8 +140,8 @@
@ stub -arch=win64 ??1fstream@@UEAA at XZ
@ stub -arch=win32 ??1ifstream@@UAE at XZ # virtual __thiscall ifstream::~ifstream(void)
@ stub -arch=win64 ??1ifstream@@UEAA at XZ
-@ thiscall -arch=win32 ??1ios@@UAE at XZ(ptr) MSVCIRT_ios_sl_void # virtual __thiscall ios::~ios(void)
-@ cdecl -arch=win64 ??1ios@@UEAA at XZ(ptr) MSVCIRT_ios_sl_void
+@ thiscall -arch=win32 ??1ios@@UAE at XZ(ptr) ios_dtor
+@ cdecl -arch=win64 ??1ios@@UEAA at XZ(ptr) ios_dtor
@ stub -arch=win32 ??1iostream@@UAE at XZ # virtual __thiscall iostream::~iostream(void)
@ stub -arch=win64 ??1iostream@@UEAA at XZ
@ stub -arch=win32 ??1istream@@UAE at XZ # virtual __thiscall istream::~istream(void)
@@ -180,8 +180,8 @@
@ stub -arch=win64 ??4fstream@@QEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4ifstream@@QAEAAV0 at ABV0@@Z # class ifstream & __thiscall ifstream::operator=(class ifstream const &)
@ stub -arch=win64 ??4ifstream@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4ios@@IAEAAV0 at ABV0@@Z # class ios & __thiscall ios::operator=(class ios const &)
-@ stub -arch=win64 ??4ios@@IEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4ios@@IAEAAV0 at ABV0@@Z(ptr ptr) ios_assign
+@ cdecl -arch=win64 ??4ios@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) ios_assign
@ stub -arch=win32 ??4iostream@@IAEAAV0 at AAV0@@Z # class iostream & __thiscall iostream::operator=(class iostream &)
@ stub -arch=win64 ??4iostream@@IEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4iostream@@IAEAAV0 at PAVstreambuf@@@Z # class iostream & __thiscall iostream::operator=(class streambuf *)
@@ -298,15 +298,15 @@
@ stub -arch=win64 ??6ostream@@QEAAAEAV0 at PEBE@Z
@ stub -arch=win32 ??6ostream@@QAEAAV0 at PBX@Z # class ostream & __thiscall ostream::operator<<(void const *)
@ stub -arch=win64 ??6ostream@@QEAAAEAV0 at PEBX@Z
-@ stub -arch=win32 ??7ios@@QBEHXZ # int __thiscall ios::operator!(void)const
-@ stub -arch=win64 ??7ios@@QEBAHXZ
-@ stub -arch=win32 ??Bios@@QBEPAXXZ # __thiscall ios::operator void *(void)const
-@ stub -arch=win64 ??Bios@@QEBAPEAXXZ
+@ thiscall -arch=win32 ??7ios@@QBEHXZ(ptr) ios_op_not
+@ cdecl -arch=win64 ??7ios@@QEBAHXZ(ptr) ios_op_not
+@ thiscall -arch=win32 ??Bios@@QBEPAXXZ(ptr) ios_op_void
+@ cdecl -arch=win64 ??Bios@@QEBAPEAXXZ(ptr) ios_op_void
@ extern ??_7exception@@6B@ MSVCP_exception_vtable
# @ extern ??_7filebuf@@6B@ # const filebuf::`vftable'
# @ extern ??_7fstream@@6B@ # const fstream::`vftable'
# @ extern ??_7ifstream@@6B@ # const ifstream::`vftable'
-# @ extern ??_7ios@@6B@ # const ios::`vftable'
+@ extern ??_7ios@@6B@ MSVCP_ios_vtable
# @ extern ??_7iostream@@6B@ # const iostream::`vftable'
# @ extern ??_7istream@@6B@ # const istream::`vftable'
# @ extern ??_7istream_withassign@@6B@ # const istream_withassign::`vftable'
@@ -365,7 +365,7 @@
@ stub -arch=win32 ??_Efilebuf@@UAEPAXI at Z # virtual void * __thiscall filebuf::`vector deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Efstream@@UAEPAXI at Z # virtual void * __thiscall fstream::`vector deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Eifstream@@UAEPAXI at Z # virtual void * __thiscall ifstream::`vector deleting destructor'(unsigned int)
-@ stub -arch=win32 ??_Eios@@UAEPAXI at Z # virtual void * __thiscall ios::`vector deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) ios_vector_dtor
@ stub -arch=win32 ??_Eiostream@@UAEPAXI at Z # virtual void * __thiscall iostream::`vector deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Eistream@@UAEPAXI at Z # virtual void * __thiscall istream::`vector deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z # virtual void * __thiscall istream_withassign::`vector deleting destructor'(unsigned int)
@@ -384,7 +384,7 @@
@ stub -arch=win32 ??_Gfilebuf@@UAEPAXI at Z # virtual void * __thiscall filebuf::`scalar deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Gfstream@@UAEPAXI at Z # virtual void * __thiscall fstream::`scalar deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Gifstream@@UAEPAXI at Z # virtual void * __thiscall ifstream::`scalar deleting destructor'(unsigned int)
-@ stub -arch=win32 ??_Gios@@UAEPAXI at Z # virtual void * __thiscall ios::`scalar deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) ios_scalar_dtor
@ stub -arch=win32 ??_Giostream@@UAEPAXI at Z # virtual void * __thiscall iostream::`scalar deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Gistream@@UAEPAXI at Z # virtual void * __thiscall istream::`scalar deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z # virtual void * __thiscall istream_withassign::`scalar deleting destructor'(unsigned int)
@@ -410,19 +410,19 @@
@ stub -arch=win64 ?attach at ifstream@@QEAAXH at Z
@ stub -arch=win32 ?attach at ofstream@@QAEXH at Z # void __thiscall ofstream::attach(int)
@ stub -arch=win64 ?attach at ofstream@@QEAAXH at Z
-@ stub -arch=win32 ?bad at ios@@QBEHXZ # int __thiscall ios::bad(void)const
-@ stub -arch=win64 ?bad at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?bad at ios@@QBEHXZ(ptr) ios_bad
+@ cdecl -arch=win64 ?bad at ios@@QEBAHXZ(ptr) ios_bad
@ thiscall -arch=win32 ?base at streambuf@@IBEPADXZ(ptr) streambuf_base
@ cdecl -arch=win64 ?base at streambuf@@IEBAPEADXZ(ptr) streambuf_base
# @ extern ?basefield at ios@@2JB # static long const ios::basefield
# @ extern ?binary at filebuf@@2HB # static int const filebuf::binary
-@ stub ?bitalloc at ios@@SAJXZ # static long __cdecl ios::bitalloc(void)
+@ cdecl ?bitalloc at ios@@SAJXZ() ios_bitalloc
@ thiscall -arch=win32 ?blen at streambuf@@IBEHXZ(ptr) streambuf_blen
@ cdecl -arch=win64 ?blen at streambuf@@IEBAHXZ(ptr) streambuf_blen
@ stub ?cerr@@3Vostream_withassign@@A # class ostream_withassign cerr
@ stub ?cin@@3Vistream_withassign@@A # class istream_withassign cin
-@ stub -arch=win32 ?clear at ios@@QAEXH at Z # void __thiscall ios::clear(int)
-@ stub -arch=win64 ?clear at ios@@QEAAXH at Z
+@ thiscall -arch=win32 ?clear at ios@@QAEXH at Z(ptr long) ios_clear
+@ cdecl -arch=win64 ?clear at ios@@QEAAXH at Z(ptr long) ios_clear
@ stub ?clog@@3Vostream_withassign@@A # class ostream_withassign clog
@ stub -arch=win32 ?close at filebuf@@QAEPAV1 at XZ # class filebuf * __thiscall filebuf::close(void)
@ stub -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ
@@ -432,19 +432,19 @@
@ stub -arch=win64 ?close at ifstream@@QEAAXXZ
@ stub -arch=win32 ?close at ofstream@@QAEXXZ # void __thiscall ofstream::close(void)
@ stub -arch=win64 ?close at ofstream@@QEAAXXZ
-@ stub -arch=win32 ?clrlock at ios@@QAAXXZ # void __cdecl ios::clrlock(void)
-@ stub -arch=win64 ?clrlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?clrlock at ios@@QAAXXZ(ptr) ios_clrlock
+@ cdecl -arch=win64 ?clrlock at ios@@QEAAXXZ(ptr) ios_clrlock
@ thiscall -arch=win32 ?clrlock at streambuf@@QAEXXZ(ptr) streambuf_clrlock
@ cdecl -arch=win64 ?clrlock at streambuf@@QEAAXXZ(ptr) streambuf_clrlock
@ stub ?cout@@3Vostream_withassign@@A # class ostream_withassign cout
@ thiscall -arch=win32 ?dbp at streambuf@@QAEXXZ(ptr) streambuf_dbp
@ cdecl -arch=win64 ?dbp at streambuf@@QEAAXXZ(ptr) streambuf_dbp
-@ stub -arch=win32 ?dec@@YAAAVios@@AAV1@@Z # class ios & __cdecl dec(class ios &)
-@ stub -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z
-@ stub -arch=win32 ?delbuf at ios@@QAEXH at Z # void __thiscall ios::delbuf(int)
-@ stub -arch=win64 ?delbuf at ios@@QEAAXH at Z
-@ stub -arch=win32 ?delbuf at ios@@QBEHXZ # int __thiscall ios::delbuf(void)const
-@ stub -arch=win64 ?delbuf at ios@@QEBAHXZ
+@ cdecl -arch=win32 ?dec@@YAAAVios@@AAV1@@Z(ptr) ios_dec
+@ cdecl -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z(ptr) ios_dec
+@ thiscall -arch=win32 ?delbuf at ios@@QAEXH at Z(ptr long) ios_delbuf_set
+@ cdecl -arch=win64 ?delbuf at ios@@QEAAXH at Z(ptr long) ios_delbuf_set
+@ thiscall -arch=win32 ?delbuf at ios@@QBEHXZ(ptr) ios_delbuf_get
+@ cdecl -arch=win64 ?delbuf at ios@@QEBAHXZ(ptr) ios_delbuf_get
@ thiscall -arch=win32 ?doallocate at streambuf@@MAEHXZ(ptr) streambuf_doallocate
@ cdecl -arch=win64 ?doallocate at streambuf@@MEAAHXZ(ptr) streambuf_doallocate
@ stub -arch=win32 ?doallocate at strstreambuf@@MAEHXZ # virtual int __thiscall strstreambuf::doallocate(void)
@@ -461,13 +461,13 @@
@ cdecl -arch=win64 ?endl@@YAAEAVostream@@AEAV1@@Z(ptr) MSVCIRT_endl
@ cdecl -arch=win32 ?ends@@YAAAVostream@@AAV1@@Z(ptr) MSVCIRT_ends # class ostream & __cdecl ends(class ostream &)
@ cdecl -arch=win64 ?ends@@YAAEAVostream@@AEAV1@@Z(ptr) MSVCIRT_ends
-@ stub -arch=win32 ?eof at ios@@QBEHXZ # int __thiscall ios::eof(void)const
-@ stub -arch=win64 ?eof at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?eof at ios@@QBEHXZ(ptr) ios_eof
+@ cdecl -arch=win64 ?eof at ios@@QEBAHXZ(ptr) ios_eof
@ thiscall -arch=win32 ?epptr at streambuf@@IBEPADXZ(ptr) streambuf_epptr
@ cdecl -arch=win64 ?epptr at streambuf@@IEBAPEADXZ(ptr) streambuf_epptr
# @ extern ?fLockcInit at ios@@0HA # static int ios::fLockcInit
-@ stub -arch=win32 ?fail at ios@@QBEHXZ # int __thiscall ios::fail(void)const
-@ stub -arch=win64 ?fail at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?fail at ios@@QBEHXZ(ptr) ios_fail
+@ cdecl -arch=win64 ?fail at ios@@QEBAHXZ(ptr) ios_fail
@ stub -arch=win32 ?fd at filebuf@@QBEHXZ # int __thiscall filebuf::fd(void)const
@ stub -arch=win64 ?fd at filebuf@@QEBAHXZ
@ stub -arch=win32 ?fd at fstream@@QBEHXZ # int __thiscall fstream::fd(void)const
@@ -476,14 +476,14 @@
@ stub -arch=win64 ?fd at ifstream@@QEBAHXZ
@ stub -arch=win32 ?fd at ofstream@@QBEHXZ # int __thiscall ofstream::fd(void)const
@ stub -arch=win64 ?fd at ofstream@@QEBAHXZ
-@ stub -arch=win32 ?fill at ios@@QAEDD at Z # char __thiscall ios::fill(char)
-@ stub -arch=win64 ?fill at ios@@QEAADD at Z
-@ stub -arch=win32 ?fill at ios@@QBEDXZ # char __thiscall ios::fill(void)const
-@ stub -arch=win64 ?fill at ios@@QEBADXZ
-@ stub -arch=win32 ?flags at ios@@QAEJJ at Z # long __thiscall ios::flags(long)
-@ stub -arch=win64 ?flags at ios@@QEAAJJ at Z
-@ stub -arch=win32 ?flags at ios@@QBEJXZ # long __thiscall ios::flags(void)const
-@ stub -arch=win64 ?flags at ios@@QEBAJXZ
+@ thiscall -arch=win32 ?fill at ios@@QAEDD at Z(ptr long) ios_fill_set
+@ cdecl -arch=win64 ?fill at ios@@QEAADD at Z(ptr long) ios_fill_set
+@ thiscall -arch=win32 ?fill at ios@@QBEDXZ(ptr) ios_fill_get
+@ cdecl -arch=win64 ?fill at ios@@QEBADXZ(ptr) ios_fill_get
+@ thiscall -arch=win32 ?flags at ios@@QAEJJ at Z(ptr long) ios_flags_set
+@ cdecl -arch=win64 ?flags at ios@@QEAAJJ at Z(ptr long) ios_flags_set
+@ thiscall -arch=win32 ?flags at ios@@QBEJXZ(ptr) ios_flags_get
+@ cdecl -arch=win64 ?flags at ios@@QEBAJXZ(ptr) ios_flags_get
# @ extern ?floatfield at ios@@2JB # static long const ios::floatfield
@ stub -arch=win32 ?flush@@YAAAVostream@@AAV1@@Z # class ostream & __cdecl flush(class ostream &)
@ stub -arch=win64 ?flush@@YAAEAVostream@@AEAV1@@Z
@@ -523,18 +523,18 @@
@ stub -arch=win64 ?getline at istream@@QEAAAEAV1 at PEADHD@Z
@ stub -arch=win32 ?getline at istream@@QAEAAV1 at PAEHD@Z # class istream & __thiscall istream::getline(unsigned char *,int,char)
@ stub -arch=win64 ?getline at istream@@QEAAAEAV1 at PEAEHD@Z
-@ stub -arch=win32 ?good at ios@@QBEHXZ # int __thiscall ios::good(void)const
-@ stub -arch=win64 ?good at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?good at ios@@QBEHXZ(ptr) ios_good
+@ cdecl -arch=win64 ?good at ios@@QEBAHXZ(ptr) ios_good
@ thiscall -arch=win32 ?gptr at streambuf@@IBEPADXZ(ptr) streambuf_gptr
@ cdecl -arch=win64 ?gptr at streambuf@@IEBAPEADXZ(ptr) streambuf_gptr
-@ stub -arch=win32 ?hex@@YAAAVios@@AAV1@@Z # class ios & __cdecl hex(class ios &)
-@ stub -arch=win64 ?hex@@YAAEAVios@@AEAV1@@Z
+@ cdecl -arch=win32 ?hex@@YAAAVios@@AAV1@@Z(ptr) ios_hex
+@ cdecl -arch=win64 ?hex@@YAAEAVios@@AEAV1@@Z(ptr) ios_hex
@ stub -arch=win32 ?ignore at istream@@QAEAAV1 at HH@Z # class istream & __thiscall istream::ignore(int,int)
@ stub -arch=win64 ?ignore at istream@@QEAAAEAV1 at HH@Z
@ thiscall -arch=win32 ?in_avail at streambuf@@QBEHXZ(ptr) streambuf_in_avail
@ cdecl -arch=win64 ?in_avail at streambuf@@QEBAHXZ(ptr) streambuf_in_avail
-@ stub -arch=win32 ?init at ios@@IAEXPAVstreambuf@@@Z # void __thiscall ios::init(class streambuf *)
-@ stub -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z
+@ thiscall -arch=win32 ?init at ios@@IAEXPAVstreambuf@@@Z(ptr ptr) ios_init
+@ cdecl -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z(ptr ptr) ios_init
@ stub -arch=win32 ?ipfx at istream@@QAEHH at Z # int __thiscall istream::ipfx(int)
@ stub -arch=win64 ?ipfx at istream@@QEAAHH at Z
@ stub -arch=win32 ?is_open at filebuf@@QBEHXZ # int __thiscall filebuf::is_open(void)const
@@ -547,21 +547,21 @@
@ stub -arch=win64 ?is_open at ofstream@@QEBAHXZ
@ stub -arch=win32 ?isfx at istream@@QAEXXZ # void __thiscall istream::isfx(void)
@ stub -arch=win64 ?isfx at istream@@QEAAXXZ
-@ stub -arch=win32 ?iword at ios@@QBEAAJH at Z # long & __thiscall ios::iword(int)const
-@ stub -arch=win64 ?iword at ios@@QEBAAEAJH at Z
-@ stub -arch=win32 ?lock at ios@@QAAXXZ # void __cdecl ios::lock(void)
-@ stub -arch=win64 ?lock at ios@@QEAAXXZ
+@ thiscall -arch=win32 ?iword at ios@@QBEAAJH at Z(ptr long) ios_iword
+@ cdecl -arch=win64 ?iword at ios@@QEBAAEAJH at Z(ptr long) ios_iword
+@ cdecl -arch=win32 ?lock at ios@@QAAXXZ(ptr) ios_lock
+@ cdecl -arch=win64 ?lock at ios@@QEAAXXZ(ptr) ios_lock
@ thiscall -arch=win32 ?lock at streambuf@@QAEXXZ(ptr) streambuf_lock
@ cdecl -arch=win64 ?lock at streambuf@@QEAAXXZ(ptr) streambuf_lock
-@ stub -arch=win32 ?lockbuf at ios@@QAAXXZ # void __cdecl ios::lockbuf(void)
-@ stub -arch=win64 ?lockbuf at ios@@QEAAXXZ
-@ stub ?lockc at ios@@KAXXZ # static void __cdecl ios::lockc(void)
-@ stub -arch=win32 ?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ # struct _CRT_CRITICAL_SECTION * __thiscall ios::lockptr(void)
-@ stub -arch=win64 ?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ
+@ cdecl -arch=win32 ?lockbuf at ios@@QAAXXZ(ptr) ios_lockbuf
+@ cdecl -arch=win64 ?lockbuf at ios@@QEAAXXZ(ptr) ios_lockbuf
+@ cdecl ?lockc at ios@@KAXXZ() ios_lockc
+@ thiscall -arch=win32 ?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ(ptr) ios_lockptr
+@ cdecl -arch=win64 ?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ(ptr) ios_lockptr
@ thiscall -arch=win32 ?lockptr at streambuf@@IAEPAU_CRT_CRITICAL_SECTION@@XZ(ptr) streambuf_lockptr
@ cdecl -arch=win64 ?lockptr at streambuf@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ(ptr) streambuf_lockptr
-@ stub -arch=win32 ?oct@@YAAAVios@@AAV1@@Z # class ios & __cdecl oct(class ios &)
-@ stub -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z
+@ cdecl -arch=win32 ?oct@@YAAAVios@@AAV1@@Z(ptr) ios_oct
+@ cdecl -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z(ptr) ios_oct
@ stub -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z # class filebuf * __thiscall filebuf::open(char const *,int,int)
@ stub -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z
@ stub -arch=win32 ?open at fstream@@QAEXPBDHH at Z # void __thiscall fstream::open(char const *,int,int)
@@ -599,10 +599,10 @@
@ stub -arch=win64 ?peek at istream@@QEAAHXZ
@ thiscall -arch=win32 ?pptr at streambuf@@IBEPADXZ(ptr) streambuf_pptr
@ cdecl -arch=win64 ?pptr at streambuf@@IEBAPEADXZ(ptr) streambuf_pptr
-@ stub -arch=win32 ?precision at ios@@QAEHH at Z # int __thiscall ios::precision(int)
-@ stub -arch=win64 ?precision at ios@@QEAAHH at Z
-@ stub -arch=win32 ?precision at ios@@QBEHXZ # int __thiscall ios::precision(void)const
-@ stub -arch=win64 ?precision at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?precision at ios@@QAEHH at Z(ptr long) ios_precision_set
+@ cdecl -arch=win64 ?precision at ios@@QEAAHH at Z(ptr long) ios_precision_set
+@ thiscall -arch=win32 ?precision at ios@@QBEHXZ(ptr) ios_precision_get
+@ cdecl -arch=win64 ?precision at ios@@QEBAHXZ(ptr) ios_precision_get
@ stub -arch=win32 ?put at ostream@@QAEAAV1 at C@Z # class ostream & __thiscall ostream::put(signed char)
@ stub -arch=win64 ?put at ostream@@QEAAAEAV1 at C@Z
@ stub -arch=win32 ?put at ostream@@QAEAAV1 at D@Z # class ostream & __thiscall ostream::put(char)
@@ -611,14 +611,14 @@
@ stub -arch=win64 ?put at ostream@@QEAAAEAV1 at E@Z
@ stub -arch=win32 ?putback at istream@@QAEAAV1 at D@Z # class istream & __thiscall istream::putback(char)
@ stub -arch=win64 ?putback at istream@@QEAAAEAV1 at D@Z
-@ stub -arch=win32 ?pword at ios@@QBEAAPAXH at Z # void * & __thiscall ios::pword(int)const
-@ stub -arch=win64 ?pword at ios@@QEBAAEAPEAXH at Z
+@ thiscall -arch=win32 ?pword at ios@@QBEAAPAXH at Z(ptr long) ios_pword
+@ cdecl -arch=win64 ?pword at ios@@QEBAAEAPEAXH at Z(ptr long) ios_pword
@ stub -arch=win32 ?rdbuf at fstream@@QBEPAVfilebuf@@XZ # class filebuf * __thiscall fstream::rdbuf(void)const
@ stub -arch=win64 ?rdbuf at fstream@@QEBAPEAVfilebuf@@XZ
@ stub -arch=win32 ?rdbuf at ifstream@@QBEPAVfilebuf@@XZ # class filebuf * __thiscall ifstream::rdbuf(void)const
@ stub -arch=win64 ?rdbuf at ifstream@@QEBAPEAVfilebuf@@XZ
-@ stub -arch=win32 ?rdbuf at ios@@QBEPAVstreambuf@@XZ # class streambuf * __thiscall ios::rdbuf(void)const
-@ stub -arch=win64 ?rdbuf at ios@@QEBAPEAVstreambuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at ios@@QBEPAVstreambuf@@XZ(ptr) ios_rdbuf
+@ cdecl -arch=win64 ?rdbuf at ios@@QEBAPEAVstreambuf@@XZ(ptr) ios_rdbuf
@ stub -arch=win32 ?rdbuf at istrstream@@QBEPAVstrstreambuf@@XZ # class strstreambuf * __thiscall istrstream::rdbuf(void)const
@ stub -arch=win64 ?rdbuf at istrstream@@QEBAPEAVstrstreambuf@@XZ
@ stub -arch=win32 ?rdbuf at ofstream@@QBEPAVfilebuf@@XZ # class filebuf * __thiscall ofstream::rdbuf(void)const
@@ -629,8 +629,8 @@
@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
@ stub -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ # class strstreambuf * __thiscall strstream::rdbuf(void)const
@ stub -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
-@ stub -arch=win32 ?rdstate at ios@@QBEHXZ # int __thiscall ios::rdstate(void)const
-@ stub -arch=win64 ?rdstate at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) ios_rdstate
+@ cdecl -arch=win64 ?rdstate at ios@@QEBAHXZ(ptr) ios_rdstate
@ stub -arch=win32 ?read at istream@@QAEAAV1 at PACH@Z # class istream & __thiscall istream::read(signed char *,int)
@ stub -arch=win64 ?read at istream@@QEAAAEAV1 at PEACH@Z
@ stub -arch=win32 ?read at istream@@QAEAAV1 at PADH@Z # class istream & __thiscall istream::read(char *,int)
@@ -671,14 +671,14 @@
@ cdecl -arch=win64 ?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z(ptr ptr long) streambuf_setbuf
@ stub -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z # virtual class streambuf * __thiscall strstreambuf::setbuf(char *,int)
@ stub -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z
-@ stub -arch=win32 ?setf at ios@@QAEJJ at Z # long __thiscall ios::setf(long)
-@ stub -arch=win64 ?setf at ios@@QEAAJJ at Z
-@ stub -arch=win32 ?setf at ios@@QAEJJJ at Z # long __thiscall ios::setf(long,long)
-@ stub -arch=win64 ?setf at ios@@QEAAJJJ at Z
+@ thiscall -arch=win32 ?setf at ios@@QAEJJ at Z(ptr long) ios_setf
+@ cdecl -arch=win64 ?setf at ios@@QEAAJJ at Z(ptr long) ios_setf
+@ thiscall -arch=win32 ?setf at ios@@QAEJJJ at Z(ptr long long) ios_setf_mask
+@ cdecl -arch=win64 ?setf at ios@@QEAAJJJ at Z(ptr long long) ios_setf_mask
@ thiscall -arch=win32 ?setg at streambuf@@IAEXPAD00 at Z(ptr ptr ptr ptr) streambuf_setg
@ cdecl -arch=win64 ?setg at streambuf@@IEAAXPEAD00 at Z(ptr ptr ptr ptr) streambuf_setg
-@ stub -arch=win32 ?setlock at ios@@QAAXXZ # void __cdecl ios::setlock(void)
-@ stub -arch=win64 ?setlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?setlock at ios@@QAAXXZ(ptr) ios_setlock
+@ cdecl -arch=win64 ?setlock at ios@@QEAAXXZ(ptr) ios_setlock
@ thiscall -arch=win32 ?setlock at streambuf@@QAEXXZ(ptr) streambuf_setlock
@ cdecl -arch=win64 ?setlock at streambuf@@QEAAXXZ(ptr) streambuf_setlock
@ stub -arch=win32 ?setmode at filebuf@@QAEHH at Z # int __thiscall filebuf::setmode(int)
@@ -731,16 +731,16 @@
@ cdecl -arch=win64 ?sync at streambuf@@UEAAHXZ(ptr) streambuf_sync
@ stub -arch=win32 ?sync at strstreambuf@@UAEHXZ # virtual int __thiscall strstreambuf::sync(void)
@ stub -arch=win64 ?sync at strstreambuf@@UEAAHXZ
-@ stub ?sync_with_stdio at ios@@SAXXZ # static void __cdecl ios::sync_with_stdio(void)
+@ cdecl ?sync_with_stdio at ios@@SAXXZ() ios_sync_with_stdio
@ stub -arch=win32 ?tellg at istream@@QAEJXZ # long __thiscall istream::tellg(void)
@ stub -arch=win64 ?tellg at istream@@QEAAJXZ
@ stub -arch=win32 ?tellp at ostream@@QAEJXZ # long __thiscall ostream::tellp(void)
@ stub -arch=win64 ?tellp at ostream@@QEAAJXZ
# @ extern ?text at filebuf@@2HB # static int const filebuf::text
-@ stub -arch=win32 ?tie at ios@@QAEPAVostream@@PAV2@@Z # class ostream * __thiscall ios::tie(class ostream *)
-@ stub -arch=win64 ?tie at ios@@QEAAPEAVostream@@PEAV2@@Z
-@ stub -arch=win32 ?tie at ios@@QBEPAVostream@@XZ # class ostream * __thiscall ios::tie(void)const
-@ stub -arch=win64 ?tie at ios@@QEBAPEAVostream@@XZ
+@ thiscall -arch=win32 ?tie at ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) ios_tie_set
+@ cdecl -arch=win64 ?tie at ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) ios_tie_set
+@ thiscall -arch=win32 ?tie at ios@@QBEPAVostream@@XZ(ptr) ios_tie_get
+@ cdecl -arch=win64 ?tie at ios@@QEBAPEAVostream@@XZ(ptr) ios_tie_get
@ thiscall -arch=win32 ?unbuffered at streambuf@@IAEXH at Z(ptr long) streambuf_unbuffered_set
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEAAXH at Z(ptr long) streambuf_unbuffered_set
@ thiscall -arch=win32 ?unbuffered at streambuf@@IBEHXZ(ptr) streambuf_unbuffered_get
@@ -751,21 +751,21 @@
@ stub -arch=win64 ?underflow at stdiobuf@@UEAAHXZ
@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ # virtual int __thiscall strstreambuf::underflow(void)
@ stub -arch=win64 ?underflow at strstreambuf@@UEAAHXZ
-@ stub -arch=win32 ?unlock at ios@@QAAXXZ # void __cdecl ios::unlock(void)
-@ stub -arch=win64 ?unlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?unlock at ios@@QAAXXZ(ptr) ios_unlock
+@ cdecl -arch=win64 ?unlock at ios@@QEAAXXZ(ptr) ios_unlock
@ thiscall -arch=win32 ?unlock at streambuf@@QAEXXZ(ptr) streambuf_unlock
@ cdecl -arch=win64 ?unlock at streambuf@@QEAAXXZ(ptr) streambuf_unlock
-@ stub -arch=win32 ?unlockbuf at ios@@QAAXXZ # void __cdecl ios::unlockbuf(void)
-@ stub -arch=win64 ?unlockbuf at ios@@QEAAXXZ
-@ stub ?unlockc at ios@@KAXXZ # static void __cdecl ios::unlockc(void)
-@ stub -arch=win32 ?unsetf at ios@@QAEJJ at Z # long __thiscall ios::unsetf(long)
-@ stub -arch=win64 ?unsetf at ios@@QEAAJJ at Z
+@ cdecl -arch=win32 ?unlockbuf at ios@@QAAXXZ(ptr) ios_unlockbuf
+@ cdecl -arch=win64 ?unlockbuf at ios@@QEAAXXZ(ptr) ios_unlockbuf
+@ cdecl ?unlockc at ios@@KAXXZ() ios_unlockc
+@ thiscall -arch=win32 ?unsetf at ios@@QAEJJ at Z(ptr long) ios_unsetf
+@ cdecl -arch=win64 ?unsetf at ios@@QEAAJJ at Z(ptr long) ios_unsetf
@ thiscall -arch=i386 ?what at exception@@UBEPBDXZ(ptr) MSVCP_exception_what
@ cdecl -arch=win64 ?what at exception@@UEBAPEBDXZ(ptr) MSVCP_exception_what
-@ stub -arch=win32 ?width at ios@@QAEHH at Z # int __thiscall ios::width(int)
-@ stub -arch=win64 ?width at ios@@QEAAHH at Z
-@ stub -arch=win32 ?width at ios@@QBEHXZ # int __thiscall ios::width(void)const
-@ stub -arch=win64 ?width at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?width at ios@@QAEHH at Z(ptr long) ios_width_set
+@ cdecl -arch=win64 ?width at ios@@QEAAHH at Z(ptr long) ios_width_set
+@ thiscall -arch=win32 ?width at ios@@QBEHXZ(ptr) ios_width_get
+@ cdecl -arch=win64 ?width at ios@@QEBAHXZ(ptr) ios_width_get
@ stub -arch=win32 ?write at ostream@@QAEAAV1 at PBCH@Z # class ostream & __thiscall ostream::write(signed char const *,int)
@ stub -arch=win64 ?write at ostream@@QEAAAEAV1 at PEBCH@Z
@ stub -arch=win32 ?write at ostream@@QAEAAV1 at PBDH@Z # class ostream & __thiscall ostream::write(char const *,int)
@@ -780,7 +780,7 @@
# @ extern ?x_lockc at ios@@0U_CRT_CRITICAL_SECTION@@A # static struct _CRT_CRITICAL_SECTION ios::x_lockc
# @ extern ?x_maxbit at ios@@0JA # static long ios::x_maxbit
# @ extern ?x_statebuf at ios@@0PAJA # static long * ios::x_statebuf
-@ stub ?xalloc at ios@@SAHXZ # static int __cdecl ios::xalloc(void)
+@ cdecl ?xalloc at ios@@SAHXZ() ios_xalloc
@ thiscall -arch=win32 ?xsgetn at streambuf@@UAEHPADH at Z(ptr ptr long) streambuf_xsgetn
@ cdecl -arch=win64 ?xsgetn at streambuf@@UEAAHPEADH at Z(ptr ptr long) streambuf_xsgetn
@ thiscall -arch=win32 ?xsputn at streambuf@@UAEHPBDH at Z(ptr ptr long) streambuf_xsputn
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index fe1d80c..13b965c 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -30,12 +30,12 @@
@ stub -arch=win64 ??0ifstream@@QEAA at PEBDHH@Z
@ stub -arch=win32 ??0ifstream@@QAE at XZ
@ stub -arch=win64 ??0ifstream@@QEAA at XZ
-@ stub -arch=win32 ??0ios@@IAE at ABV0@@Z
-@ stub -arch=win64 ??0ios@@IEAA at AEBV0@@Z
-@ stub -arch=win32 ??0ios@@IAE at XZ
-@ stub -arch=win64 ??0ios@@IEAA at XZ
-@ stub -arch=win32 ??0ios@@QAE at PAVstreambuf@@@Z
-@ stub -arch=win64 ??0ios@@QEAA at PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??0ios@@IAE at ABV0@@Z(ptr ptr) msvcirt.??0ios@@IAE at ABV0@@Z
+@ cdecl -arch=win64 ??0ios@@IEAA at AEBV0@@Z(ptr ptr) msvcirt.??0ios@@IEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0ios@@IAE at XZ(ptr) msvcirt.??0ios@@IAE at XZ
+@ cdecl -arch=win64 ??0ios@@IEAA at XZ(ptr) msvcirt.??0ios@@IEAA at XZ
+@ thiscall -arch=win32 ??0ios@@QAE at PAVstreambuf@@@Z(ptr ptr) msvcirt.??0ios@@QAE at PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??0ios@@QEAA at PEAVstreambuf@@@Z(ptr ptr) msvcirt.??0ios@@QEAA at PEAVstreambuf@@@Z
@ stub -arch=win32 ??0iostream@@IAE at ABV0@@Z
@ stub -arch=win64 ??0iostream@@IEAA at AEBV0@@Z
@ stub -arch=win32 ??0iostream@@IAE at XZ
@@ -166,8 +166,8 @@
@ stub -arch=win64 ??4fstream@@QEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4ifstream@@QAEAAV0 at ABV0@@Z
@ stub -arch=win64 ??4ifstream@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4ios@@IAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4ios@@IEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4ios@@IAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4ios@@IAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4ios@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4ios@@IEAAAEAV0 at AEBV0@@Z
@ stub -arch=win32 ??4iostream@@IAEAAV0 at AAV0@@Z
@ stub -arch=win64 ??4iostream@@IEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4iostream@@IAEAAV0 at PAVstreambuf@@@Z
@@ -282,14 +282,14 @@
@ stub -arch=win64 ??6ostream@@QEAAAEAV0 at PEBE@Z
@ stub -arch=win32 ??6ostream@@QAEAAV0 at PBX@Z
@ stub -arch=win64 ??6ostream@@QEAAAEAV0 at PEBX@Z
-@ stub -arch=win32 ??7ios@@QBEHXZ
-@ stub -arch=win64 ??7ios@@QEBAHXZ
-@ stub -arch=win32 ??Bios@@QBEPAXXZ
-@ stub -arch=win64 ??Bios@@QEBAPEAXXZ
+@ thiscall -arch=win32 ??7ios@@QBEHXZ(ptr) msvcirt.??7ios@@QBEHXZ
+@ cdecl -arch=win64 ??7ios@@QEBAHXZ(ptr) msvcirt.??7ios@@QEBAHXZ
+@ thiscall -arch=win32 ??Bios@@QBEPAXXZ(ptr) msvcirt.??Bios@@QBEPAXXZ
+@ cdecl -arch=win64 ??Bios@@QEBAPEAXXZ(ptr) msvcirt.??Bios@@QEBAPEAXXZ
# @ extern ??_7filebuf@@6B@
# @ extern ??_7fstream@@6B@
# @ extern ??_7ifstream@@6B@
-# @ extern ??_7ios@@6B@
+@ extern ??_7ios@@6B@ msvcirt.??_7ios@@6B@
# @ extern ??_7iostream@@6B@
# @ extern ??_7istream@@6B@
# @ extern ??_7istream_withassign@@6B@
@@ -347,7 +347,7 @@
@ stub -arch=win32 ??_Efilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Efstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Eifstream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Eios@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) msvcirt.??_Eios@@UAEPAXI at Z
@ stub -arch=win32 ??_Eiostream@@UAEPAXI at Z
@ stub -arch=win32 ??_Eistream@@UAEPAXI at Z
@ stub -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z
@@ -365,7 +365,7 @@
@ stub -arch=win32 ??_Gfilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gfstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Gifstream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gios@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) msvcirt.??_Gios@@UAEPAXI at Z
@ stub -arch=win32 ??_Giostream@@UAEPAXI at Z
@ stub -arch=win32 ??_Gistream@@UAEPAXI at Z
@ stub -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z
@@ -398,19 +398,19 @@
@ stub -arch=win64 ?attach at ifstream@@QEAAXH at Z
@ stub -arch=win32 ?attach at ofstream@@QAEXH at Z
@ stub -arch=win64 ?attach at ofstream@@QEAAXH at Z
-@ stub -arch=win32 ?bad at ios@@QBEHXZ
-@ stub -arch=win64 ?bad at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?bad at ios@@QBEHXZ(ptr) msvcirt.?bad at ios@@QBEHXZ
+@ cdecl -arch=win64 ?bad at ios@@QEBAHXZ(ptr) msvcirt.?bad at ios@@QEBAHXZ
@ thiscall -arch=win32 ?base at streambuf@@IBEPADXZ(ptr) msvcirt.?base at streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?base at streambuf@@IEBAPEADXZ(ptr) msvcirt.?base at streambuf@@IEBAPEADXZ
# @ extern ?basefield at ios@@2JB
# @ extern ?binary at filebuf@@2HB
-@ stub ?bitalloc at ios@@SAJXZ
+@ cdecl ?bitalloc at ios@@SAJXZ() msvcirt.?bitalloc at ios@@SAJXZ
@ thiscall -arch=win32 ?blen at streambuf@@IBEHXZ(ptr) msvcirt.?blen at streambuf@@IBEHXZ
@ cdecl -arch=win64 ?blen at streambuf@@IEBAHXZ(ptr) msvcirt.?blen at streambuf@@IEBAHXZ
@ stub ?cerr@@3Vostream_withassign@@A
@ stub ?cin@@3Vistream_withassign@@A
-@ stub -arch=win32 ?clear at ios@@QAEXH at Z
-@ stub -arch=win64 ?clear at ios@@QEAAXH at Z
+@ thiscall -arch=win32 ?clear at ios@@QAEXH at Z(ptr long) msvcirt.?clear at ios@@QAEXH at Z
+@ cdecl -arch=win64 ?clear at ios@@QEAAXH at Z(ptr long) msvcirt.?clear at ios@@QEAAXH at Z
@ stub ?clog@@3Vostream_withassign@@A
@ stub -arch=win32 ?close at filebuf@@QAEPAV1 at XZ
@ stub -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ
@@ -420,19 +420,19 @@
@ stub -arch=win64 ?close at ifstream@@QEAAXXZ
@ stub -arch=win32 ?close at ofstream@@QAEXXZ
@ stub -arch=win64 ?close at ofstream@@QEAAXXZ
-@ stub -arch=win32 ?clrlock at ios@@QAAXXZ
-@ stub -arch=win64 ?clrlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?clrlock at ios@@QAAXXZ(ptr) msvcirt.?clrlock at ios@@QAAXXZ
+@ cdecl -arch=win64 ?clrlock at ios@@QEAAXXZ(ptr) msvcirt.?clrlock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?clrlock at streambuf@@QAEXXZ(ptr) msvcirt.?clrlock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?clrlock at streambuf@@QEAAXXZ(ptr) msvcirt.?clrlock at streambuf@@QEAAXXZ
@ stub ?cout@@3Vostream_withassign@@A
@ thiscall -arch=win32 ?dbp at streambuf@@QAEXXZ(ptr) msvcirt.?dbp at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?dbp at streambuf@@QEAAXXZ(ptr) msvcirt.?dbp at streambuf@@QEAAXXZ
-@ stub -arch=win32 ?dec@@YAAAVios@@AAV1@@Z
-@ stub -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z
-@ stub -arch=win32 ?delbuf at ios@@QAEXH at Z
-@ stub -arch=win64 ?delbuf at ios@@QEAAXH at Z
-@ stub -arch=win32 ?delbuf at ios@@QBEHXZ
-@ stub -arch=win64 ?delbuf at ios@@QEBAHXZ
+@ cdecl -arch=win32 ?dec@@YAAAVios@@AAV1@@Z(ptr) msvcirt.?dec@@YAAAVios@@AAV1@@Z
+@ cdecl -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z(ptr) msvcirt.?dec@@YAAEAVios@@AEAV1@@Z
+@ thiscall -arch=win32 ?delbuf at ios@@QAEXH at Z(ptr long) msvcirt.?delbuf at ios@@QAEXH at Z
+@ cdecl -arch=win64 ?delbuf at ios@@QEAAXH at Z(ptr long) msvcirt.?delbuf at ios@@QEAAXH at Z
+@ thiscall -arch=win32 ?delbuf at ios@@QBEHXZ(ptr) msvcirt.?delbuf at ios@@QBEHXZ
+@ cdecl -arch=win64 ?delbuf at ios@@QEBAHXZ(ptr) msvcirt.?delbuf at ios@@QEBAHXZ
@ thiscall -arch=win32 ?doallocate at streambuf@@MAEHXZ(ptr) msvcirt.?doallocate at streambuf@@MAEHXZ
@ cdecl -arch=win64 ?doallocate at streambuf@@MEAAHXZ(ptr) msvcirt.?doallocate at streambuf@@MEAAHXZ
@ stub -arch=win32 ?doallocate at strstreambuf@@MAEHXZ
@@ -449,13 +449,13 @@
@ cdecl -arch=win64 ?endl@@YAAEAVostream@@AEAV1@@Z(ptr) msvcirt.?endl@@YAAEAVostream@@AEAV1@@Z
@ cdecl -arch=win32 ?ends@@YAAAVostream@@AAV1@@Z(ptr) msvcirt.?ends@@YAAAVostream@@AAV1@@Z
@ cdecl -arch=win64 ?ends@@YAAEAVostream@@AEAV1@@Z(ptr) msvcirt.?ends@@YAAEAVostream@@AEAV1@@Z
-@ stub -arch=win32 ?eof at ios@@QBEHXZ
-@ stub -arch=win64 ?eof at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?eof at ios@@QBEHXZ(ptr) msvcirt.?eof at ios@@QBEHXZ
+@ cdecl -arch=win64 ?eof at ios@@QEBAHXZ(ptr) msvcirt.?eof at ios@@QEBAHXZ
@ thiscall -arch=win32 ?epptr at streambuf@@IBEPADXZ(ptr) msvcirt.?epptr at streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?epptr at streambuf@@IEBAPEADXZ(ptr) msvcirt.?epptr at streambuf@@IEBAPEADXZ
# @ extern ?fLockcInit at ios@@0HA
-@ stub -arch=win32 ?fail at ios@@QBEHXZ
-@ stub -arch=win64 ?fail at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?fail at ios@@QBEHXZ(ptr) msvcirt.?fail at ios@@QBEHXZ
+@ cdecl -arch=win64 ?fail at ios@@QEBAHXZ(ptr) msvcirt.?fail at ios@@QEBAHXZ
@ stub -arch=win32 ?fd at filebuf@@QBEHXZ
@ stub -arch=win64 ?fd at filebuf@@QEBAHXZ
@ stub -arch=win32 ?fd at fstream@@QBEHXZ
@@ -464,14 +464,14 @@
@ stub -arch=win64 ?fd at ifstream@@QEBAHXZ
@ stub -arch=win32 ?fd at ofstream@@QBEHXZ
@ stub -arch=win64 ?fd at ofstream@@QEBAHXZ
-@ stub -arch=win32 ?fill at ios@@QAEDD at Z
-@ stub -arch=win64 ?fill at ios@@QEAADD at Z
-@ stub -arch=win32 ?fill at ios@@QBEDXZ
-@ stub -arch=win64 ?fill at ios@@QEBADXZ
-@ stub -arch=win32 ?flags at ios@@QAEJJ at Z
-@ stub -arch=win64 ?flags at ios@@QEAAJJ at Z
-@ stub -arch=win32 ?flags at ios@@QBEJXZ
-@ stub -arch=win64 ?flags at ios@@QEBAJXZ
+@ thiscall -arch=win32 ?fill at ios@@QAEDD at Z(ptr long) msvcirt.?fill at ios@@QAEDD at Z
+@ cdecl -arch=win64 ?fill at ios@@QEAADD at Z(ptr long) msvcirt.?fill at ios@@QEAADD at Z
+@ thiscall -arch=win32 ?fill at ios@@QBEDXZ(ptr) msvcirt.?fill at ios@@QBEDXZ
+@ cdecl -arch=win64 ?fill at ios@@QEBADXZ(ptr) msvcirt.?fill at ios@@QEBADXZ
+@ thiscall -arch=win32 ?flags at ios@@QAEJJ at Z(ptr long) msvcirt.?flags at ios@@QAEJJ at Z
+@ cdecl -arch=win64 ?flags at ios@@QEAAJJ at Z(ptr long) msvcirt.?flags at ios@@QEAAJJ at Z
+@ thiscall -arch=win32 ?flags at ios@@QBEJXZ(ptr) msvcirt.?flags at ios@@QBEJXZ
+@ cdecl -arch=win64 ?flags at ios@@QEBAJXZ(ptr) msvcirt.?flags at ios@@QEBAJXZ
# @ extern ?floatfield at ios@@2JB
@ stub -arch=win32 ?flush@@YAAAVostream@@AAV1@@Z
@ stub -arch=win64 ?flush@@YAAEAVostream@@AEAV1@@Z
@@ -509,18 +509,18 @@
@ stub -arch=win64 ?getline at istream@@QEAAAEAV1 at PEADHD@Z
@ stub -arch=win32 ?getline at istream@@QAEAAV1 at PAEHD@Z
@ stub -arch=win64 ?getline at istream@@QEAAAEAV1 at PEAEHD@Z
-@ stub -arch=win32 ?good at ios@@QBEHXZ
-@ stub -arch=win64 ?good at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?good at ios@@QBEHXZ(ptr) msvcirt.?good at ios@@QBEHXZ
+@ cdecl -arch=win64 ?good at ios@@QEBAHXZ(ptr) msvcirt.?good at ios@@QEBAHXZ
@ thiscall -arch=win32 ?gptr at streambuf@@IBEPADXZ(ptr) msvcirt.?gptr at streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?gptr at streambuf@@IEBAPEADXZ(ptr) msvcirt.?gptr at streambuf@@IEBAPEADXZ
-@ stub -arch=win32 ?hex@@YAAAVios@@AAV1@@Z
-@ stub -arch=win64 ?hex@@YAAEAVios@@AEAV1@@Z
+@ cdecl -arch=win32 ?hex@@YAAAVios@@AAV1@@Z(ptr) msvcirt.?hex@@YAAAVios@@AAV1@@Z
+@ cdecl -arch=win64 ?hex@@YAAEAVios@@AEAV1@@Z(ptr) msvcirt.?hex@@YAAEAVios@@AEAV1@@Z
@ stub -arch=win32 ?ignore at istream@@QAEAAV1 at HH@Z
@ stub -arch=win64 ?ignore at istream@@QEAAAEAV1 at HH@Z
@ thiscall -arch=win32 ?in_avail at streambuf@@QBEHXZ(ptr) msvcirt.?in_avail at streambuf@@QBEHXZ
@ cdecl -arch=win64 ?in_avail at streambuf@@QEBAHXZ(ptr) msvcirt.?in_avail at streambuf@@QEBAHXZ
-@ stub -arch=win32 ?init at ios@@IAEXPAVstreambuf@@@Z
-@ stub -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z
+@ thiscall -arch=win32 ?init at ios@@IAEXPAVstreambuf@@@Z(ptr ptr) msvcirt.?init at ios@@IAEXPAVstreambuf@@@Z
+@ cdecl -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z(ptr ptr) msvcirt.?init at ios@@IEAAXPEAVstreambuf@@@Z
@ stub -arch=win32 ?ipfx at istream@@QAEHH at Z
@ stub -arch=win64 ?ipfx at istream@@QEAAHH at Z
@ stub -arch=win32 ?is_open at filebuf@@QBEHXZ
@@ -533,21 +533,21 @@
@ stub -arch=win64 ?is_open at ofstream@@QEBAHXZ
@ stub -arch=win32 ?isfx at istream@@QAEXXZ
@ stub -arch=win64 ?isfx at istream@@QEAAXXZ
-@ stub -arch=win32 ?iword at ios@@QBEAAJH at Z
-@ stub -arch=win64 ?iword at ios@@QEBAAEAJH at Z
-@ stub -arch=win32 ?lock at ios@@QAAXXZ
-@ stub -arch=win64 ?lock at ios@@QEAAXXZ
+@ thiscall -arch=win32 ?iword at ios@@QBEAAJH at Z(ptr long) msvcirt.?iword at ios@@QBEAAJH at Z
+@ cdecl -arch=win64 ?iword at ios@@QEBAAEAJH at Z(ptr long) msvcirt.?iword at ios@@QEBAAEAJH at Z
+@ cdecl -arch=win32 ?lock at ios@@QAAXXZ(ptr) msvcirt.?lock at ios@@QAAXXZ
+@ cdecl -arch=win64 ?lock at ios@@QEAAXXZ(ptr) msvcirt.?lock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?lock at streambuf@@QAEXXZ(ptr) msvcirt.?lock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?lock at streambuf@@QEAAXXZ(ptr) msvcirt.?lock at streambuf@@QEAAXXZ
-@ stub -arch=win32 ?lockbuf at ios@@QAAXXZ
-@ stub -arch=win64 ?lockbuf at ios@@QEAAXXZ
-@ stub ?lockc at ios@@KAXXZ
-@ stub -arch=win32 ?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ
-@ stub -arch=win64 ?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ
+@ cdecl -arch=win32 ?lockbuf at ios@@QAAXXZ(ptr) msvcirt.?lockbuf at ios@@QAAXXZ
+@ cdecl -arch=win64 ?lockbuf at ios@@QEAAXXZ(ptr) msvcirt.?lockbuf at ios@@QEAAXXZ
+@ cdecl ?lockc at ios@@KAXXZ() msvcirt.?lockc at ios@@KAXXZ
+@ thiscall -arch=win32 ?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ
+@ cdecl -arch=win64 ?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ
@ thiscall -arch=win32 ?lockptr at streambuf@@IAEPAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at streambuf@@IAEPAU_CRT_CRITICAL_SECTION@@XZ
@ cdecl -arch=win64 ?lockptr at streambuf@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at streambuf@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ
-@ stub -arch=win32 ?oct@@YAAAVios@@AAV1@@Z
-@ stub -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z
+@ cdecl -arch=win32 ?oct@@YAAAVios@@AAV1@@Z(ptr) msvcirt.?oct@@YAAAVios@@AAV1@@Z
+@ cdecl -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z(ptr) msvcirt.?oct@@YAAEAVios@@AEAV1@@Z
@ stub -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z
@ stub -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z
@ stub -arch=win32 ?open at fstream@@QAEXPBDHH at Z
@@ -585,10 +585,10 @@
@ stub -arch=win64 ?peek at istream@@QEAAHXZ
@ thiscall -arch=win32 ?pptr at streambuf@@IBEPADXZ(ptr) msvcirt.?pptr at streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?pptr at streambuf@@IEBAPEADXZ(ptr) msvcirt.?pptr at streambuf@@IEBAPEADXZ
-@ stub -arch=win32 ?precision at ios@@QAEHH at Z
-@ stub -arch=win64 ?precision at ios@@QEAAHH at Z
-@ stub -arch=win32 ?precision at ios@@QBEHXZ
-@ stub -arch=win64 ?precision at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?precision at ios@@QAEHH at Z(ptr long) msvcirt.?precision at ios@@QAEHH at Z
+@ cdecl -arch=win64 ?precision at ios@@QEAAHH at Z(ptr long) msvcirt.?precision at ios@@QEAAHH at Z
+@ thiscall -arch=win32 ?precision at ios@@QBEHXZ(ptr) msvcirt.?precision at ios@@QBEHXZ
+@ cdecl -arch=win64 ?precision at ios@@QEBAHXZ(ptr) msvcirt.?precision at ios@@QEBAHXZ
@ stub -arch=win32 ?put at ostream@@QAEAAV1 at C@Z
@ stub -arch=win64 ?put at ostream@@QEAAAEAV1 at C@Z
@ stub -arch=win32 ?put at ostream@@QAEAAV1 at D@Z
@@ -597,14 +597,14 @@
@ stub -arch=win64 ?put at ostream@@QEAAAEAV1 at E@Z
@ stub -arch=win32 ?putback at istream@@QAEAAV1 at D@Z
@ stub -arch=win64 ?putback at istream@@QEAAAEAV1 at D@Z
-@ stub -arch=win32 ?pword at ios@@QBEAAPAXH at Z
-@ stub -arch=win64 ?pword at ios@@QEBAAEAPEAXH at Z
+@ thiscall -arch=win32 ?pword at ios@@QBEAAPAXH at Z(ptr long) msvcirt.?pword at ios@@QBEAAPAXH at Z
+@ cdecl -arch=win64 ?pword at ios@@QEBAAEAPEAXH at Z(ptr long) msvcirt.?pword at ios@@QEBAAEAPEAXH at Z
@ stub -arch=win32 ?rdbuf at fstream@@QBEPAVfilebuf@@XZ
@ stub -arch=win64 ?rdbuf at fstream@@QEBAPEAVfilebuf@@XZ
@ stub -arch=win32 ?rdbuf at ifstream@@QBEPAVfilebuf@@XZ
@ stub -arch=win64 ?rdbuf at ifstream@@QEBAPEAVfilebuf@@XZ
-@ stub -arch=win32 ?rdbuf at ios@@QBEPAVstreambuf@@XZ
-@ stub -arch=win64 ?rdbuf at ios@@QEBAPEAVstreambuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at ios@@QBEPAVstreambuf@@XZ(ptr) msvcirt.?rdbuf at ios@@QBEPAVstreambuf@@XZ
+@ cdecl -arch=win64 ?rdbuf at ios@@QEBAPEAVstreambuf@@XZ(ptr) msvcirt.?rdbuf at ios@@QEBAPEAVstreambuf@@XZ
@ stub -arch=win32 ?rdbuf at istrstream@@QBEPAVstrstreambuf@@XZ
@ stub -arch=win64 ?rdbuf at istrstream@@QEBAPEAVstrstreambuf@@XZ
@ stub -arch=win32 ?rdbuf at ofstream@@QBEPAVfilebuf@@XZ
@@ -615,8 +615,8 @@
@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
@ stub -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ
@ stub -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
-@ stub -arch=win32 ?rdstate at ios@@QBEHXZ
-@ stub -arch=win64 ?rdstate at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) msvcirt.?rdstate at ios@@QBEHXZ
+@ cdecl -arch=win64 ?rdstate at ios@@QEBAHXZ(ptr) msvcirt.?rdstate at ios@@QEBAHXZ
@ stub -arch=win32 ?read at istream@@QAEAAV1 at PACH@Z
@ stub -arch=win64 ?read at istream@@QEAAAEAV1 at PEACH@Z
@ stub -arch=win32 ?read at istream@@QAEAAV1 at PADH@Z
@@ -659,14 +659,14 @@
@ cdecl -arch=win64 ?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z(ptr ptr long) msvcirt.?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z
@ stub -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z
@ stub -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z
-@ stub -arch=win32 ?setf at ios@@QAEJJ at Z
-@ stub -arch=win64 ?setf at ios@@QEAAJJ at Z
-@ stub -arch=win32 ?setf at ios@@QAEJJJ at Z
-@ stub -arch=win64 ?setf at ios@@QEAAJJJ at Z
+@ thiscall -arch=win32 ?setf at ios@@QAEJJ at Z(ptr long) msvcirt.?setf at ios@@QAEJJ at Z
+@ cdecl -arch=win64 ?setf at ios@@QEAAJJ at Z(ptr long) msvcirt.?setf at ios@@QEAAJJ at Z
+@ thiscall -arch=win32 ?setf at ios@@QAEJJJ at Z(ptr long long) msvcirt.?setf at ios@@QAEJJJ at Z
+@ cdecl -arch=win64 ?setf at ios@@QEAAJJJ at Z(ptr long long) msvcirt.?setf at ios@@QEAAJJJ at Z
@ thiscall -arch=win32 ?setg at streambuf@@IAEXPAD00 at Z(ptr ptr ptr ptr) msvcirt.?setg at streambuf@@IAEXPAD00 at Z
@ cdecl -arch=win64 ?setg at streambuf@@IEAAXPEAD00 at Z(ptr ptr ptr ptr) msvcirt.?setg at streambuf@@IEAAXPEAD00 at Z
-@ stub -arch=win32 ?setlock at ios@@QAAXXZ
-@ stub -arch=win64 ?setlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?setlock at ios@@QAAXXZ(ptr) msvcirt.?setlock at ios@@QAAXXZ
+@ cdecl -arch=win64 ?setlock at ios@@QEAAXXZ(ptr) msvcirt.?setlock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?setlock at streambuf@@QAEXXZ(ptr) msvcirt.?setlock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?setlock at streambuf@@QEAAXXZ(ptr) msvcirt.?setlock at streambuf@@QEAAXXZ
@ stub -arch=win32 ?setmode at filebuf@@QAEHH at Z
@@ -719,17 +719,17 @@
@ cdecl -arch=win64 ?sync at streambuf@@UEAAHXZ(ptr) msvcirt.?sync at streambuf@@UEAAHXZ
@ stub -arch=win32 ?sync at strstreambuf@@UAEHXZ
@ stub -arch=win64 ?sync at strstreambuf@@UEAAHXZ
-@ stub ?sync_with_stdio at ios@@SAXXZ
+@ cdecl ?sync_with_stdio at ios@@SAXXZ() msvcirt.?sync_with_stdio at ios@@SAXXZ
@ stub -arch=win32 ?tellg at istream@@QAEJXZ
@ stub -arch=win64 ?tellg at istream@@QEAAJXZ
@ stub -arch=win32 ?tellp at ostream@@QAEJXZ
@ stub -arch=win64 ?tellp at ostream@@QEAAJXZ
@ cdecl ?terminate@@YAXXZ() msvcrt.?terminate@@YAXXZ
# @ extern ?text at filebuf@@2HB
-@ stub -arch=win32 ?tie at ios@@QAEPAVostream@@PAV2@@Z
-@ stub -arch=win64 ?tie at ios@@QEAAPEAVostream@@PEAV2@@Z
-@ stub -arch=win32 ?tie at ios@@QBEPAVostream@@XZ
-@ stub -arch=win64 ?tie at ios@@QEBAPEAVostream@@XZ
+@ thiscall -arch=win32 ?tie at ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) msvcirt.?tie at ios@@QAEPAVostream@@PAV2@@Z
+@ cdecl -arch=win64 ?tie at ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) msvcirt.?tie at ios@@QEAAPEAVostream@@PEAV2@@Z
+@ thiscall -arch=win32 ?tie at ios@@QBEPAVostream@@XZ(ptr) msvcirt.?tie at ios@@QBEPAVostream@@XZ
+@ cdecl -arch=win64 ?tie at ios@@QEBAPEAVostream@@XZ(ptr) msvcirt.?tie at ios@@QEBAPEAVostream@@XZ
@ thiscall -arch=win32 ?unbuffered at streambuf@@IAEXH at Z(ptr long) msvcirt.?unbuffered at streambuf@@IAEXH at Z
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEAAXH at Z(ptr long) msvcirt.?unbuffered at streambuf@@IEAAXH at Z
@ thiscall -arch=win32 ?unbuffered at streambuf@@IBEHXZ(ptr) msvcirt.?unbuffered at streambuf@@IBEHXZ
@@ -741,19 +741,19 @@
@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ
@ stub -arch=win64 ?underflow at strstreambuf@@UEAAHXZ
@ cdecl ?unexpected@@YAXXZ() msvcrt.?unexpected@@YAXXZ
-@ stub -arch=win32 ?unlock at ios@@QAAXXZ
-@ stub -arch=win64 ?unlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?unlock at ios@@QAAXXZ(ptr) msvcirt.?unlock at ios@@QAAXXZ
+@ cdecl -arch=win64 ?unlock at ios@@QEAAXXZ(ptr) msvcirt.?unlock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?unlock at streambuf@@QAEXXZ(ptr) msvcirt.?unlock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?unlock at streambuf@@QEAAXXZ(ptr) msvcirt.?unlock at streambuf@@QEAAXXZ
-@ stub -arch=win32 ?unlockbuf at ios@@QAAXXZ
-@ stub -arch=win64 ?unlockbuf at ios@@QEAAXXZ
-@ stub ?unlockc at ios@@KAXXZ
-@ stub -arch=win32 ?unsetf at ios@@QAEJJ at Z
-@ stub -arch=win64 ?unsetf at ios@@QEAAJJ at Z
-@ stub -arch=win32 ?width at ios@@QAEHH at Z
-@ stub -arch=win64 ?width at ios@@QEAAHH at Z
-@ stub -arch=win32 ?width at ios@@QBEHXZ
-@ stub -arch=win64 ?width at ios@@QEBAHXZ
+@ cdecl -arch=win32 ?unlockbuf at ios@@QAAXXZ(ptr) msvcirt.?unlockbuf at ios@@QAAXXZ
+@ cdecl -arch=win64 ?unlockbuf at ios@@QEAAXXZ(ptr) msvcirt.?unlockbuf at ios@@QEAAXXZ
+@ cdecl ?unlockc at ios@@KAXXZ() msvcirt.?unlockc at ios@@KAXXZ
+@ thiscall -arch=win32 ?unsetf at ios@@QAEJJ at Z(ptr long) msvcirt.?unsetf at ios@@QAEJJ at Z
+@ cdecl -arch=win64 ?unsetf at ios@@QEAAJJ at Z(ptr long) msvcirt.?unsetf at ios@@QEAAJJ at Z
+@ thiscall -arch=win32 ?width at ios@@QAEHH at Z(ptr long) msvcirt.?width at ios@@QAEHH at Z
+@ cdecl -arch=win64 ?width at ios@@QEAAHH at Z(ptr long) msvcirt.?width at ios@@QEAAHH at Z
+@ thiscall -arch=win32 ?width at ios@@QBEHXZ(ptr) msvcirt.?width at ios@@QBEHXZ
+@ cdecl -arch=win64 ?width at ios@@QEBAHXZ(ptr) msvcirt.?width at ios@@QEBAHXZ
@ stub -arch=win32 ?write at ostream@@QAEAAV1 at PBCH@Z
@ stub -arch=win64 ?write at ostream@@QEAAAEAV1 at PEBCH@Z
@ stub -arch=win32 ?write at ostream@@QAEAAV1 at PBDH@Z
@@ -768,7 +768,7 @@
# @ extern ?x_lockc at ios@@0U_RTL_CRITICAL_SECTION@@A
# @ extern ?x_maxbit at ios@@0JA
# @ extern ?x_statebuf at ios@@0QAJA
-@ stub ?xalloc at ios@@SAHXZ
+@ cdecl ?xalloc at ios@@SAHXZ() msvcirt.?xalloc at ios@@SAHXZ
@ thiscall -arch=win32 ?xsgetn at streambuf@@UAEHPADH at Z(ptr ptr long) msvcirt.?xsgetn at streambuf@@UAEHPADH at Z
@ cdecl -arch=win64 ?xsgetn at streambuf@@UEAAHPEADH at Z(ptr ptr long) msvcirt.?xsgetn at streambuf@@UEAAHPEADH at Z
@ thiscall -arch=win32 ?xsputn at streambuf@@UAEHPBDH at Z(ptr ptr long) msvcirt.?xsputn at streambuf@@UAEHPBDH at Z
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index 6fa3078..924cd02 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -48,12 +48,12 @@
@ stub -arch=win64 ??0ifstream@@QEAA at PEBDHH@Z
@ stub -arch=win32 ??0ifstream@@QAE at XZ
@ stub -arch=win64 ??0ifstream@@QEAA at XZ
-@ stub -arch=win32 ??0ios@@IAE at ABV0@@Z
-@ stub -arch=win64 ??0ios@@IEAA at AEBV0@@Z
-@ stub -arch=win32 ??0ios@@IAE at XZ
-@ stub -arch=win64 ??0ios@@IEAA at XZ
-@ stub -arch=win32 ??0ios@@QAE at PAVstreambuf@@@Z
-@ stub -arch=win64 ??0ios@@QEAA at PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??0ios@@IAE at ABV0@@Z(ptr ptr) msvcirt.??0ios@@IAE at ABV0@@Z
+@ cdecl -arch=win64 ??0ios@@IEAA at AEBV0@@Z(ptr ptr) msvcirt.??0ios@@IEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0ios@@IAE at XZ(ptr) msvcirt.??0ios@@IAE at XZ
+@ cdecl -arch=win64 ??0ios@@IEAA at XZ(ptr) msvcirt.??0ios@@IEAA at XZ
+@ thiscall -arch=win32 ??0ios@@QAE at PAVstreambuf@@@Z(ptr ptr) msvcirt.??0ios@@QAE at PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??0ios@@QEAA at PEAVstreambuf@@@Z(ptr ptr) msvcirt.??0ios@@QEAA at PEAVstreambuf@@@Z
@ stub -arch=win32 ??0iostream@@IAE at ABV0@@Z
@ stub -arch=win64 ??0iostream@@IEAA at AEBV0@@Z
@ stub -arch=win32 ??0iostream@@IAE at XZ
@@ -208,8 +208,8 @@
@ stub -arch=win64 ??4fstream@@QEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4ifstream@@QAEAAV0 at ABV0@@Z
@ stub -arch=win64 ??4ifstream@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4ios@@IAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4ios@@IEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4ios@@IAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4ios@@IAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4ios@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4ios@@IEAAAEAV0 at AEBV0@@Z
@ stub -arch=win32 ??4iostream@@IAEAAV0 at AAV0@@Z
@ stub -arch=win64 ??4iostream@@IEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4iostream@@IAEAAV0 at PAVstreambuf@@@Z
@@ -326,14 +326,14 @@
@ stub -arch=win64 ??6ostream@@QEAAAEAV0 at PEBE@Z
@ stub -arch=win32 ??6ostream@@QAEAAV0 at PBX@Z
@ stub -arch=win64 ??6ostream@@QEAAAEAV0 at PEBX@Z
-@ stub -arch=win32 ??7ios@@QBEHXZ
-@ stub -arch=win64 ??7ios@@QEBAHXZ
+@ thiscall -arch=win32 ??7ios@@QBEHXZ(ptr) msvcirt.??7ios@@QBEHXZ
+@ cdecl -arch=win64 ??7ios@@QEBAHXZ(ptr) msvcirt.??7ios@@QEBAHXZ
@ thiscall -arch=i386 ??8type_info@@QBEHABV0@@Z(ptr ptr) msvcrt.??8type_info@@QBEHABV0@@Z
@ cdecl -arch=win64 ??8type_info@@QEBAHAEBV0@@Z(ptr ptr) msvcrt.??8type_info@@QEBAHAEBV0@@Z
@ thiscall -arch=i386 ??9type_info@@QBEHABV0@@Z(ptr ptr) msvcrt.??9type_info@@QBEHABV0@@Z
@ cdecl -arch=win64 ??9type_info@@QEBAHAEBV0@@Z(ptr ptr) msvcrt.??9type_info@@QEBAHAEBV0@@Z
-@ stub -arch=win32 ??Bios@@QBEPAXXZ
-@ stub -arch=win64 ??Bios@@QEBAPEAXXZ
+@ thiscall -arch=win32 ??Bios@@QBEPAXXZ(ptr) msvcirt.??Bios@@QBEPAXXZ
+@ cdecl -arch=win64 ??Bios@@QEBAPEAXXZ(ptr) msvcirt.??Bios@@QEBAPEAXXZ
@ extern ??_7__non_rtti_object@@6B@ msvcrt.??_7__non_rtti_object@@6B@
@ extern ??_7bad_cast@@6B@ msvcrt.??_7bad_cast@@6B@
@ extern ??_7bad_typeid@@6B@ msvcrt.??_7bad_typeid@@6B@
@@ -341,7 +341,7 @@
# @ extern ??_7filebuf@@6B@
# @ extern ??_7fstream@@6B@
# @ extern ??_7ifstream@@6B@
-# @ extern ??_7ios@@6B@
+@ extern ??_7ios@@6B@ msvcirt.??_7ios@@6B@
# @ extern ??_7iostream@@6B@
# @ extern ??_7istream@@6B@
# @ extern ??_7istream_withassign@@6B@
@@ -404,7 +404,7 @@
@ stub -arch=win32 ??_Efilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Efstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Eifstream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Eios@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) msvcirt.??_Eios@@UAEPAXI at Z
@ stub -arch=win32 ??_Eiostream@@UAEPAXI at Z
@ stub -arch=win32 ??_Eistream@@UAEPAXI at Z
@ stub -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z
@@ -427,7 +427,7 @@
@ stub -arch=win32 ??_Gfilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gfstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Gifstream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gios@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) msvcirt.??_Gios@@UAEPAXI at Z
@ stub -arch=win32 ??_Giostream@@UAEPAXI at Z
@ stub -arch=win32 ??_Gistream@@UAEPAXI at Z
@ stub -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z
@@ -461,21 +461,21 @@
@ stub -arch=win64 ?attach at ifstream@@QEAAXH at Z
@ stub -arch=win32 ?attach at ofstream@@QAEXH at Z
@ stub -arch=win64 ?attach at ofstream@@QEAAXH at Z
-@ stub -arch=win32 ?bad at ios@@QBEHXZ
-@ stub -arch=win64 ?bad at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?bad at ios@@QBEHXZ(ptr) msvcirt.?bad at ios@@QBEHXZ
+@ cdecl -arch=win64 ?bad at ios@@QEBAHXZ(ptr) msvcirt.?bad at ios@@QEBAHXZ
@ thiscall -arch=win32 ?base at streambuf@@IBEPADXZ(ptr) msvcirt.?base at streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?base at streambuf@@IEBAPEADXZ(ptr) msvcirt.?base at streambuf@@IEBAPEADXZ
# @ extern ?basefield at ios@@2JB
@ thiscall -arch=i386 ?before at type_info@@QBEHABV1@@Z(ptr ptr) msvcrt.?before at type_info@@QBEHABV1@@Z
@ cdecl -arch=win64 ?before at type_info@@QEBAHAEBV1@@Z(ptr ptr) msvcrt.?before at type_info@@QEBAHAEBV1@@Z
# @ extern ?binary at filebuf@@2HB
-@ stub ?bitalloc at ios@@SAJXZ
+@ cdecl ?bitalloc at ios@@SAJXZ() msvcirt.?bitalloc at ios@@SAJXZ
@ thiscall -arch=win32 ?blen at streambuf@@IBEHXZ(ptr) msvcirt.?blen at streambuf@@IBEHXZ
@ cdecl -arch=win64 ?blen at streambuf@@IEBAHXZ(ptr) msvcirt.?blen at streambuf@@IEBAHXZ
@ stub ?cerr@@3Vostream_withassign@@A
@ stub ?cin@@3Vistream_withassign@@A
-@ stub -arch=win32 ?clear at ios@@QAEXH at Z
-@ stub -arch=win64 ?clear at ios@@QEAAXH at Z
+@ thiscall -arch=win32 ?clear at ios@@QAEXH at Z(ptr long) msvcirt.?clear at ios@@QAEXH at Z
+@ cdecl -arch=win64 ?clear at ios@@QEAAXH at Z(ptr long) msvcirt.?clear at ios@@QEAAXH at Z
@ stub ?clog@@3Vostream_withassign@@A
@ stub -arch=win32 ?close at filebuf@@QAEPAV1 at XZ
@ stub -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ
@@ -485,19 +485,19 @@
@ stub -arch=win64 ?close at ifstream@@QEAAXXZ
@ stub -arch=win32 ?close at ofstream@@QAEXXZ
@ stub -arch=win64 ?close at ofstream@@QEAAXXZ
-@ stub -arch=win32 ?clrlock at ios@@QAAXXZ
-@ stub -arch=win64 ?clrlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?clrlock at ios@@QAAXXZ(ptr) msvcirt.?clrlock at ios@@QAAXXZ
+@ cdecl -arch=win64 ?clrlock at ios@@QEAAXXZ(ptr) msvcirt.?clrlock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?clrlock at streambuf@@QAEXXZ(ptr) msvcirt.?clrlock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?clrlock at streambuf@@QEAAXXZ(ptr) msvcirt.?clrlock at streambuf@@QEAAXXZ
@ stub ?cout@@3Vostream_withassign@@A
@ thiscall -arch=win32 ?dbp at streambuf@@QAEXXZ(ptr) msvcirt.?dbp at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?dbp at streambuf@@QEAAXXZ(ptr) msvcirt.?dbp at streambuf@@QEAAXXZ
-@ stub -arch=win32 ?dec@@YAAAVios@@AAV1@@Z
-@ stub -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z
-@ stub -arch=win32 ?delbuf at ios@@QAEXH at Z
-@ stub -arch=win64 ?delbuf at ios@@QEAAXH at Z
-@ stub -arch=win32 ?delbuf at ios@@QBEHXZ
-@ stub -arch=win64 ?delbuf at ios@@QEBAHXZ
+@ cdecl -arch=win32 ?dec@@YAAAVios@@AAV1@@Z(ptr) msvcirt.?dec@@YAAAVios@@AAV1@@Z
+@ cdecl -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z(ptr) msvcirt.?dec@@YAAEAVios@@AEAV1@@Z
+@ thiscall -arch=win32 ?delbuf at ios@@QAEXH at Z(ptr long) msvcirt.?delbuf at ios@@QAEXH at Z
+@ cdecl -arch=win64 ?delbuf at ios@@QEAAXH at Z(ptr long) msvcirt.?delbuf at ios@@QEAAXH at Z
+@ thiscall -arch=win32 ?delbuf at ios@@QBEHXZ(ptr) msvcirt.?delbuf at ios@@QBEHXZ
+@ cdecl -arch=win64 ?delbuf at ios@@QEBAHXZ(ptr) msvcirt.?delbuf at ios@@QEBAHXZ
@ thiscall -arch=win32 ?doallocate at streambuf@@MAEHXZ(ptr) msvcirt.?doallocate at streambuf@@MAEHXZ
@ cdecl -arch=win64 ?doallocate at streambuf@@MEAAHXZ(ptr) msvcirt.?doallocate at streambuf@@MEAAHXZ
@ stub -arch=win32 ?doallocate at strstreambuf@@MAEHXZ
@@ -514,13 +514,13 @@
@ cdecl -arch=win64 ?endl@@YAAEAVostream@@AEAV1@@Z(ptr) msvcirt.?endl@@YAAEAVostream@@AEAV1@@Z
@ cdecl -arch=win32 ?ends@@YAAAVostream@@AAV1@@Z(ptr) msvcirt.?ends@@YAAAVostream@@AAV1@@Z
@ cdecl -arch=win64 ?ends@@YAAEAVostream@@AEAV1@@Z(ptr) msvcirt.?ends@@YAAEAVostream@@AEAV1@@Z
-@ stub -arch=win32 ?eof at ios@@QBEHXZ
-@ stub -arch=win64 ?eof at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?eof at ios@@QBEHXZ(ptr) msvcirt.?eof at ios@@QBEHXZ
+@ cdecl -arch=win64 ?eof at ios@@QEBAHXZ(ptr) msvcirt.?eof at ios@@QEBAHXZ
@ thiscall -arch=win32 ?epptr at streambuf@@IBEPADXZ(ptr) msvcirt.?epptr at streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?epptr at streambuf@@IEBAPEADXZ(ptr) msvcirt.?epptr at streambuf@@IEBAPEADXZ
# @ extern ?fLockcInit at ios@@0HA
-@ stub -arch=win32 ?fail at ios@@QBEHXZ
-@ stub -arch=win64 ?fail at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?fail at ios@@QBEHXZ(ptr) msvcirt.?fail at ios@@QBEHXZ
+@ cdecl -arch=win64 ?fail at ios@@QEBAHXZ(ptr) msvcirt.?fail at ios@@QEBAHXZ
@ stub -arch=win32 ?fd at filebuf@@QBEHXZ
@ stub -arch=win64 ?fd at filebuf@@QEBAHXZ
@ stub -arch=win32 ?fd at fstream@@QBEHXZ
@@ -529,14 +529,14 @@
@ stub -arch=win64 ?fd at ifstream@@QEBAHXZ
@ stub -arch=win32 ?fd at ofstream@@QBEHXZ
@ stub -arch=win64 ?fd at ofstream@@QEBAHXZ
-@ stub -arch=win32 ?fill at ios@@QAEDD at Z
-@ stub -arch=win64 ?fill at ios@@QEAADD at Z
-@ stub -arch=win32 ?fill at ios@@QBEDXZ
-@ stub -arch=win64 ?fill at ios@@QEBADXZ
-@ stub -arch=win32 ?flags at ios@@QAEJJ at Z
-@ stub -arch=win64 ?flags at ios@@QEAAJJ at Z
-@ stub -arch=win32 ?flags at ios@@QBEJXZ
-@ stub -arch=win64 ?flags at ios@@QEBAJXZ
+@ thiscall -arch=win32 ?fill at ios@@QAEDD at Z(ptr long) msvcirt.?fill at ios@@QAEDD at Z
+@ cdecl -arch=win64 ?fill at ios@@QEAADD at Z(ptr long) msvcirt.?fill at ios@@QEAADD at Z
+@ thiscall -arch=win32 ?fill at ios@@QBEDXZ(ptr) msvcirt.?fill at ios@@QBEDXZ
+@ cdecl -arch=win64 ?fill at ios@@QEBADXZ(ptr) msvcirt.?fill at ios@@QEBADXZ
+@ thiscall -arch=win32 ?flags at ios@@QAEJJ at Z(ptr long) msvcirt.?flags at ios@@QAEJJ at Z
+@ cdecl -arch=win64 ?flags at ios@@QEAAJJ at Z(ptr long) msvcirt.?flags at ios@@QEAAJJ at Z
+@ thiscall -arch=win32 ?flags at ios@@QBEJXZ(ptr) msvcirt.?flags at ios@@QBEJXZ
+@ cdecl -arch=win64 ?flags at ios@@QEBAJXZ(ptr) msvcirt.?flags at ios@@QEBAJXZ
# @ extern ?floatfield at ios@@2JB
@ stub -arch=win32 ?flush@@YAAAVostream@@AAV1@@Z
@ stub -arch=win64 ?flush@@YAAEAVostream@@AEAV1@@Z
@@ -576,18 +576,18 @@
@ stub -arch=win64 ?getline at istream@@QEAAAEAV1 at PEADHD@Z
@ stub -arch=win32 ?getline at istream@@QAEAAV1 at PAEHD@Z
@ stub -arch=win64 ?getline at istream@@QEAAAEAV1 at PEAEHD@Z
-@ stub -arch=win32 ?good at ios@@QBEHXZ
-@ stub -arch=win64 ?good at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?good at ios@@QBEHXZ(ptr) msvcirt.?good at ios@@QBEHXZ
+@ cdecl -arch=win64 ?good at ios@@QEBAHXZ(ptr) msvcirt.?good at ios@@QEBAHXZ
@ thiscall -arch=win32 ?gptr at streambuf@@IBEPADXZ(ptr) msvcirt.?gptr at streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?gptr at streambuf@@IEBAPEADXZ(ptr) msvcirt.?gptr at streambuf@@IEBAPEADXZ
-@ stub -arch=win32 ?hex@@YAAAVios@@AAV1@@Z
-@ stub -arch=win64 ?hex@@YAAEAVios@@AEAV1@@Z
+@ cdecl -arch=win32 ?hex@@YAAAVios@@AAV1@@Z(ptr) msvcirt.?hex@@YAAAVios@@AAV1@@Z
+@ cdecl -arch=win64 ?hex@@YAAEAVios@@AEAV1@@Z(ptr) msvcirt.?hex@@YAAEAVios@@AEAV1@@Z
@ stub -arch=win32 ?ignore at istream@@QAEAAV1 at HH@Z
@ stub -arch=win64 ?ignore at istream@@QEAAAEAV1 at HH@Z
@ thiscall -arch=win32 ?in_avail at streambuf@@QBEHXZ(ptr) msvcirt.?in_avail at streambuf@@QBEHXZ
@ cdecl -arch=win64 ?in_avail at streambuf@@QEBAHXZ(ptr) msvcirt.?in_avail at streambuf@@QEBAHXZ
-@ stub -arch=win32 ?init at ios@@IAEXPAVstreambuf@@@Z
-@ stub -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z
+@ thiscall -arch=win32 ?init at ios@@IAEXPAVstreambuf@@@Z(ptr ptr) msvcirt.?init at ios@@IAEXPAVstreambuf@@@Z
+@ cdecl -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z(ptr ptr) msvcirt.?init at ios@@IEAAXPEAVstreambuf@@@Z
@ stub -arch=win32 ?ipfx at istream@@QAEHH at Z
@ stub -arch=win64 ?ipfx at istream@@QEAAHH at Z
@ stub -arch=win32 ?is_open at filebuf@@QBEHXZ
@@ -600,23 +600,23 @@
@ stub -arch=win64 ?is_open at ofstream@@QEBAHXZ
@ stub -arch=win32 ?isfx at istream@@QAEXXZ
@ stub -arch=win64 ?isfx at istream@@QEAAXXZ
-@ stub -arch=win32 ?iword at ios@@QBEAAJH at Z
-@ stub -arch=win64 ?iword at ios@@QEBAAEAJH at Z
-@ stub -arch=win32 ?lock at ios@@QAAXXZ
-@ stub -arch=win64 ?lock at ios@@QEAAXXZ
+@ thiscall -arch=win32 ?iword at ios@@QBEAAJH at Z(ptr long) msvcirt.?iword at ios@@QBEAAJH at Z
+@ cdecl -arch=win64 ?iword at ios@@QEBAAEAJH at Z(ptr long) msvcirt.?iword at ios@@QEBAAEAJH at Z
+@ cdecl -arch=win32 ?lock at ios@@QAAXXZ(ptr) msvcirt.?lock at ios@@QAAXXZ
+@ cdecl -arch=win64 ?lock at ios@@QEAAXXZ(ptr) msvcirt.?lock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?lock at streambuf@@QAEXXZ(ptr) msvcirt.?lock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?lock at streambuf@@QEAAXXZ(ptr) msvcirt.?lock at streambuf@@QEAAXXZ
-@ stub -arch=win32 ?lockbuf at ios@@QAAXXZ
-@ stub -arch=win64 ?lockbuf at ios@@QEAAXXZ
-@ stub ?lockc at ios@@KAXXZ
-@ stub -arch=win32 ?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ
-@ stub -arch=win64 ?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ
+@ cdecl -arch=win32 ?lockbuf at ios@@QAAXXZ(ptr) msvcirt.?lockbuf at ios@@QAAXXZ
+@ cdecl -arch=win64 ?lockbuf at ios@@QEAAXXZ(ptr) msvcirt.?lockbuf at ios@@QEAAXXZ
+@ cdecl ?lockc at ios@@KAXXZ() msvcirt.?lockc at ios@@KAXXZ
+@ thiscall -arch=win32 ?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ
+@ cdecl -arch=win64 ?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at ios@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ
@ thiscall -arch=win32 ?lockptr at streambuf@@IAEPAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at streambuf@@IAEPAU_CRT_CRITICAL_SECTION@@XZ
@ cdecl -arch=win64 ?lockptr at streambuf@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at streambuf@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ
@ thiscall -arch=win32 ?name at type_info@@QBEPBDXZ(ptr) msvcrt.?name at type_info@@QBEPBDXZ
@ cdecl -arch=win64 ?name at type_info@@QEBAPEBDXZ(ptr) msvcrt.?name at type_info@@QEBAPEBDXZ
-@ stub -arch=win32 ?oct@@YAAAVios@@AAV1@@Z
-@ stub -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z
+@ cdecl -arch=win32 ?oct@@YAAAVios@@AAV1@@Z(ptr) msvcirt.?oct@@YAAAVios@@AAV1@@Z
+@ cdecl -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z(ptr) msvcirt.?oct@@YAAEAVios@@AEAV1@@Z
@ stub -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z
@ stub -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z
@ stub -arch=win32 ?open at fstream@@QAEXPBDHH at Z
@@ -654,10 +654,10 @@
@ stub -arch=win64 ?peek at istream@@QEAAHXZ
@ thiscall -arch=win32 ?pptr at streambuf@@IBEPADXZ(ptr) msvcirt.?pptr at streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?pptr at streambuf@@IEBAPEADXZ(ptr) msvcirt.?pptr at streambuf@@IEBAPEADXZ
-@ stub -arch=win32 ?precision at ios@@QAEHH at Z
-@ stub -arch=win64 ?precision at ios@@QEAAHH at Z
-@ stub -arch=win32 ?precision at ios@@QBEHXZ
-@ stub -arch=win64 ?precision at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?precision at ios@@QAEHH at Z(ptr long) msvcirt.?precision at ios@@QAEHH at Z
+@ cdecl -arch=win64 ?precision at ios@@QEAAHH at Z(ptr long) msvcirt.?precision at ios@@QEAAHH at Z
+@ thiscall -arch=win32 ?precision at ios@@QBEHXZ(ptr) msvcirt.?precision at ios@@QBEHXZ
+@ cdecl -arch=win64 ?precision at ios@@QEBAHXZ(ptr) msvcirt.?precision at ios@@QEBAHXZ
@ stub -arch=win32 ?put at ostream@@QAEAAV1 at C@Z
@ stub -arch=win64 ?put at ostream@@QEAAAEAV1 at C@Z
@ stub -arch=win32 ?put at ostream@@QAEAAV1 at D@Z
@@ -666,16 +666,16 @@
@ stub -arch=win64 ?put at ostream@@QEAAAEAV1 at E@Z
@ stub -arch=win32 ?putback at istream@@QAEAAV1 at D@Z
@ stub -arch=win64 ?putback at istream@@QEAAAEAV1 at D@Z
-@ stub -arch=win32 ?pword at ios@@QBEAAPAXH at Z
-@ stub -arch=win64 ?pword at ios@@QEBAAEAPEAXH at Z
+@ thiscall -arch=win32 ?pword at ios@@QBEAAPAXH at Z(ptr long) msvcirt.?pword at ios@@QBEAAPAXH at Z
+@ cdecl -arch=win64 ?pword at ios@@QEBAAEAPEAXH at Z(ptr long) msvcirt.?pword at ios@@QEBAAEAPEAXH at Z
@ thiscall -arch=i386 ?raw_name at type_info@@QBEPBDXZ(ptr) msvcrt.?raw_name at type_info@@QBEPBDXZ
@ cdecl -arch=win64 ?raw_name at type_info@@QEBAPEBDXZ(ptr) msvcrt.?raw_name at type_info@@QEBAPEBDXZ
@ stub -arch=win32 ?rdbuf at fstream@@QBEPAVfilebuf@@XZ
@ stub -arch=win64 ?rdbuf at fstream@@QEBAPEAVfilebuf@@XZ
@ stub -arch=win32 ?rdbuf at ifstream@@QBEPAVfilebuf@@XZ
@ stub -arch=win64 ?rdbuf at ifstream@@QEBAPEAVfilebuf@@XZ
-@ stub -arch=win32 ?rdbuf at ios@@QBEPAVstreambuf@@XZ
-@ stub -arch=win64 ?rdbuf at ios@@QEBAPEAVstreambuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at ios@@QBEPAVstreambuf@@XZ(ptr) msvcirt.?rdbuf at ios@@QBEPAVstreambuf@@XZ
+@ cdecl -arch=win64 ?rdbuf at ios@@QEBAPEAVstreambuf@@XZ(ptr) msvcirt.?rdbuf at ios@@QEBAPEAVstreambuf@@XZ
@ stub -arch=win32 ?rdbuf at istrstream@@QBEPAVstrstreambuf@@XZ
@ stub -arch=win64 ?rdbuf at istrstream@@QEBAPEAVstrstreambuf@@XZ
@ stub -arch=win32 ?rdbuf at ofstream@@QBEPAVfilebuf@@XZ
@@ -686,8 +686,8 @@
@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
@ stub -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ
@ stub -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
-@ stub -arch=win32 ?rdstate at ios@@QBEHXZ
-@ stub -arch=win64 ?rdstate at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) msvcirt.?rdstate at ios@@QBEHXZ
+@ cdecl -arch=win64 ?rdstate at ios@@QEBAHXZ(ptr) msvcirt.?rdstate at ios@@QEBAHXZ
@ stub -arch=win32 ?read at istream@@QAEAAV1 at PACH@Z
@ stub -arch=win64 ?read at istream@@QEAAAEAV1 at PEACH@Z
@ stub -arch=win32 ?read at istream@@QAEAAV1 at PADH@Z
@@ -731,14 +731,14 @@
@ cdecl -arch=win64 ?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z(ptr ptr long) msvcirt.?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z
@ stub -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z
@ stub -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z
-@ stub -arch=win32 ?setf at ios@@QAEJJ at Z
-@ stub -arch=win64 ?setf at ios@@QEAAJJ at Z
-@ stub -arch=win32 ?setf at ios@@QAEJJJ at Z
-@ stub -arch=win64 ?setf at ios@@QEAAJJJ at Z
+@ thiscall -arch=win32 ?setf at ios@@QAEJJ at Z(ptr long) msvcirt.?setf at ios@@QAEJJ at Z
+@ cdecl -arch=win64 ?setf at ios@@QEAAJJ at Z(ptr long) msvcirt.?setf at ios@@QEAAJJ at Z
+@ thiscall -arch=win32 ?setf at ios@@QAEJJJ at Z(ptr long long) msvcirt.?setf at ios@@QAEJJJ at Z
+@ cdecl -arch=win64 ?setf at ios@@QEAAJJJ at Z(ptr long long) msvcirt.?setf at ios@@QEAAJJJ at Z
@ thiscall -arch=win32 ?setg at streambuf@@IAEXPAD00 at Z(ptr ptr ptr ptr) msvcirt.?setg at streambuf@@IAEXPAD00 at Z
@ cdecl -arch=win64 ?setg at streambuf@@IEAAXPEAD00 at Z(ptr ptr ptr ptr) msvcirt.?setg at streambuf@@IEAAXPEAD00 at Z
-@ stub -arch=win32 ?setlock at ios@@QAAXXZ
-@ stub -arch=win64 ?setlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?setlock at ios@@QAAXXZ(ptr) msvcirt.?setlock at ios@@QAAXXZ
+@ cdecl -arch=win64 ?setlock at ios@@QEAAXXZ(ptr) msvcirt.?setlock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?setlock at streambuf@@QAEXXZ(ptr) msvcirt.?setlock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?setlock at streambuf@@QEAAXXZ(ptr) msvcirt.?setlock at streambuf@@QEAAXXZ
@ stub -arch=win32 ?setmode at filebuf@@QAEHH at Z
@@ -791,17 +791,17 @@
@ cdecl -arch=win64 ?sync at streambuf@@UEAAHXZ(ptr) msvcirt.?sync at streambuf@@UEAAHXZ
@ stub -arch=win32 ?sync at strstreambuf@@UAEHXZ
@ stub -arch=win64 ?sync at strstreambuf@@UEAAHXZ
-@ stub ?sync_with_stdio at ios@@SAXXZ
+@ cdecl ?sync_with_stdio at ios@@SAXXZ() msvcirt.?sync_with_stdio at ios@@SAXXZ
@ stub -arch=win32 ?tellg at istream@@QAEJXZ
@ stub -arch=win64 ?tellg at istream@@QEAAJXZ
@ stub -arch=win32 ?tellp at ostream@@QAEJXZ
@ stub -arch=win64 ?tellp at ostream@@QEAAJXZ
@ cdecl ?terminate@@YAXXZ() msvcrt.?terminate@@YAXXZ
# @ extern ?text at filebuf@@2HB
-@ stub -arch=win32 ?tie at ios@@QAEPAVostream@@PAV2@@Z
-@ stub -arch=win64 ?tie at ios@@QEAAPEAVostream@@PEAV2@@Z
-@ stub -arch=win32 ?tie at ios@@QBEPAVostream@@XZ
-@ stub -arch=win64 ?tie at ios@@QEBAPEAVostream@@XZ
+@ thiscall -arch=win32 ?tie at ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) msvcirt.?tie at ios@@QAEPAVostream@@PAV2@@Z
+@ cdecl -arch=win64 ?tie at ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) msvcirt.?tie at ios@@QEAAPEAVostream@@PEAV2@@Z
+@ thiscall -arch=win32 ?tie at ios@@QBEPAVostream@@XZ(ptr) msvcirt.?tie at ios@@QBEPAVostream@@XZ
+@ cdecl -arch=win64 ?tie at ios@@QEBAPEAVostream@@XZ(ptr) msvcirt.?tie at ios@@QEBAPEAVostream@@XZ
@ thiscall -arch=win32 ?unbuffered at streambuf@@IAEXH at Z(ptr long) msvcirt.?unbuffered at streambuf@@IAEXH at Z
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEAAXH at Z(ptr long) msvcirt.?unbuffered at streambuf@@IEAAXH at Z
@ thiscall -arch=win32 ?unbuffered at streambuf@@IBEHXZ(ptr) msvcirt.?unbuffered at streambuf@@IBEHXZ
@@ -813,21 +813,21 @@
@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ
@ stub -arch=win64 ?underflow at strstreambuf@@UEAAHXZ
@ cdecl ?unexpected@@YAXXZ() msvcrt.?unexpected@@YAXXZ
-@ stub -arch=win32 ?unlock at ios@@QAAXXZ
-@ stub -arch=win64 ?unlock at ios@@QEAAXXZ
+@ cdecl -arch=win32 ?unlock at ios@@QAAXXZ(ptr) msvcirt.?unlock at ios@@QAAXXZ
+@ cdecl -arch=win64 ?unlock at ios@@QEAAXXZ(ptr) msvcirt.?unlock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?unlock at streambuf@@QAEXXZ(ptr) msvcirt.?unlock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?unlock at streambuf@@QEAAXXZ(ptr) msvcirt.?unlock at streambuf@@QEAAXXZ
-@ stub -arch=win32 ?unlockbuf at ios@@QAAXXZ
-@ stub -arch=win64 ?unlockbuf at ios@@QEAAXXZ
-@ stub ?unlockc at ios@@KAXXZ
-@ stub -arch=win32 ?unsetf at ios@@QAEJJ at Z
-@ stub -arch=win64 ?unsetf at ios@@QEAAJJ at Z
+@ cdecl -arch=win32 ?unlockbuf at ios@@QAAXXZ(ptr) msvcirt.?unlockbuf at ios@@QAAXXZ
+@ cdecl -arch=win64 ?unlockbuf at ios@@QEAAXXZ(ptr) msvcirt.?unlockbuf at ios@@QEAAXXZ
+@ cdecl ?unlockc at ios@@KAXXZ() msvcirt.?unlockc at ios@@KAXXZ
+@ thiscall -arch=win32 ?unsetf at ios@@QAEJJ at Z(ptr long) msvcirt.?unsetf at ios@@QAEJJ at Z
+@ cdecl -arch=win64 ?unsetf at ios@@QEAAJJ at Z(ptr long) msvcirt.?unsetf at ios@@QEAAJJ at Z
@ thiscall -arch=i386 ?what at exception@@UBEPBDXZ(ptr) msvcrt.?what at exception@@UBEPBDXZ
@ cdecl -arch=win64 ?what at exception@@UEBAPEBDXZ(ptr) msvcrt.?what at exception@@UEBAPEBDXZ
-@ stub -arch=win32 ?width at ios@@QAEHH at Z
-@ stub -arch=win64 ?width at ios@@QEAAHH at Z
-@ stub -arch=win32 ?width at ios@@QBEHXZ
-@ stub -arch=win64 ?width at ios@@QEBAHXZ
+@ thiscall -arch=win32 ?width at ios@@QAEHH at Z(ptr long) msvcirt.?width at ios@@QAEHH at Z
+@ cdecl -arch=win64 ?width at ios@@QEAAHH at Z(ptr long) msvcirt.?width at ios@@QEAAHH at Z
+@ thiscall -arch=win32 ?width at ios@@QBEHXZ(ptr) msvcirt.?width at ios@@QBEHXZ
+@ cdecl -arch=win64 ?width at ios@@QEBAHXZ(ptr) msvcirt.?width at ios@@QEBAHXZ
@ stub -arch=win32 ?write at ostream@@QAEAAV1 at PBCH@Z
@ stub -arch=win64 ?write at ostream@@QEAAAEAV1 at PEBCH@Z
@ stub -arch=win32 ?write at ostream@@QAEAAV1 at PBDH@Z
@@ -842,7 +842,7 @@
# @ extern ?x_lockc at ios@@0U_CRT_CRITICAL_SECTION@@A
# @ extern ?x_maxbit at ios@@0JA
# @ extern ?x_statebuf at ios@@0PAJA
-@ stub ?xalloc at ios@@SAHXZ
+@ cdecl ?xalloc at ios@@SAHXZ() msvcirt.?xalloc at ios@@SAHXZ
@ thiscall -arch=win32 ?xsgetn at streambuf@@UAEHPADH at Z(ptr ptr long) msvcirt.?xsgetn at streambuf@@UAEHPADH at Z
@ cdecl -arch=win64 ?xsgetn at streambuf@@UEAAHPEADH at Z(ptr ptr long) msvcirt.?xsgetn at streambuf@@UEAAHPEADH at Z
@ thiscall -arch=win32 ?xsputn at streambuf@@UAEHPBDH at Z(ptr ptr long) msvcirt.?xsputn at streambuf@@UAEHPBDH at Z
--
2.1.4
More information about the wine-patches
mailing list