@@ -84,3 +84,85 @@ void test__U_STRINGorID() {
8484 sink (u.m_lpstr ); // $ ir
8585 }
8686}
87+
88+ template <int t_nBufferLength>
89+ struct CA2AEX {
90+ LPSTR m_psz;
91+ char m_szBuffer[t_nBufferLength];
92+
93+ CA2AEX (LPCSTR psz, UINT nCodePage);
94+ CA2AEX (LPCSTR psz);
95+
96+ ~CA2AEX ();
97+
98+ operator LPSTR () const throw();
99+ };
100+
101+ void test_CA2AEX () {
102+ {
103+ LPSTR x = indirect_source<char >();
104+ CA2AEX<128 > a (x);
105+ sink (static_cast <LPSTR>(a)); // $ MISSING: ir
106+ sink (a.m_psz ); // $ MISSING: ir
107+ sink (a.m_szBuffer ); // $ MISSING: ir
108+ }
109+
110+ {
111+ LPSTR x = indirect_source<char >();
112+ CA2AEX<128 > a (x, 0 );
113+ sink (static_cast <LPSTR>(a)); // $ MISSING: ir
114+ sink (a.m_psz ); // $ MISSING: ir
115+ sink (a.m_szBuffer ); // $ MISSING: ir
116+ }
117+ }
118+
119+ template <int t_nBufferLength>
120+ struct CA2CAEX {
121+ CA2CAEX (LPCSTR psz, UINT nCodePage) ;
122+ CA2CAEX (LPCSTR psz) ;
123+ ~CA2CAEX () throw ();
124+ operator LPCSTR () const throw();
125+ LPCSTR m_psz;
126+ };
127+
128+ void test_CA2CAEX () {
129+ LPCSTR x = indirect_source<char >();
130+ {
131+ CA2CAEX<128 > a (x);
132+ sink (static_cast <LPCSTR>(a)); // $ MISSING: ir
133+ sink (a.m_psz ); // $ MISSING: ir
134+ sink (a.m_psz ); // $ MISSING: ir
135+ }
136+ {
137+ CA2CAEX<128 > a (x, 0 );
138+ sink (static_cast <LPCSTR>(a)); // $ MISSING: ir
139+ sink (a.m_psz ); // $ MISSING: ir
140+ sink (a.m_psz ); // $ MISSING: ir
141+ }
142+ }
143+
144+ template <int t_nBufferLength>
145+ struct CA2WEX {
146+ CA2WEX (LPCSTR psz, UINT nCodePage) ;
147+ CA2WEX (LPCSTR psz) ;
148+ ~CA2WEX () throw ();
149+ operator LPWSTR () const throw();
150+ LPWSTR m_psz;
151+ wchar_t m_szBuffer[t_nBufferLength];
152+ };
153+
154+ void test_CA2WEX () {
155+ LPCSTR x = indirect_source<char >();
156+ {
157+ CA2WEX<128 > a (x);
158+ sink (static_cast <LPWSTR>(a)); // $ MISSING: ir
159+ sink (a.m_psz ); // $ MISSING: ir
160+ sink (a.m_psz ); // $ MISSING: ir
161+ }
162+ {
163+ CA2WEX<128 > a (x, 0 );
164+ sink (static_cast <LPWSTR>(a)); // $ MISSING: ir
165+ sink (a.m_psz ); // $ MISSING: ir
166+ sink (a.m_psz ); // $ MISSING: ir
167+ }
168+ }
0 commit comments