C++: Add CStringT tests.

This commit is contained in:
Mathias Vorreiter Pedersen
2024-12-10 18:18:37 +00:00
parent ba0ba15e88
commit 73ff33888b
3 changed files with 529 additions and 0 deletions

View File

@@ -1009,3 +1009,204 @@ void test_CSimpleStringT() {
sink(s1[0]); // $ ir
}
template<typename T>
struct MakeOther {};
template<>
struct MakeOther<char> {
using other_t = wchar_t;
};
template<>
struct MakeOther<wchar_t> {
using other_t = char;
};
template<typename BaseType>
struct CStringT : public CSimpleStringT<BaseType> {
using XCHAR = BaseType; // simplified
using YCHAR = typename MakeOther<BaseType>::other_t; // simplified
using PCXSTR = typename CSimpleStringT<BaseType>::PCXSTR;
using PXSTR = typename CSimpleStringT<BaseType>::PXSTR;
CStringT() throw();
CStringT(IAtlStringMgr* pStringMgr) throw();
CStringT(const VARIANT& varSrc);
CStringT(const VARIANT& varSrc, IAtlStringMgr* pStringMgr);
CStringT(const CStringT& strSrc);
CStringT(const CSimpleStringT<BaseType>& strSrc);
CStringT(const XCHAR* pszSrc);
CStringT(const YCHAR* pszSrc);
CStringT(LPCSTR pszSrc, IAtlStringMgr* pStringMgr);
CStringT(LPCWSTR pszSrc, IAtlStringMgr* pStringMgr);
CStringT(const unsigned char* pszSrc);
CStringT(char* pszSrc);
CStringT(unsigned char* pszSrc);
CStringT(wchar_t* pszSrc);
CStringT(const unsigned char* pszSrc, IAtlStringMgr* pStringMgr);
CStringT(char ch, int nLength = 1);
CStringT(wchar_t ch, int nLength = 1);
CStringT(const XCHAR* pch, int nLength);
CStringT(const YCHAR* pch, int nLength);
CStringT(const XCHAR* pch, int nLength, IAtlStringMgr* pStringMgr);
CStringT(const YCHAR* pch, int nLength, IAtlStringMgr* pStringMgr);
operator CSimpleStringT<BaseType> &();
~CStringT() throw();
BSTR AllocSysString() const;
void AppendFormat(PCXSTR pszFormat, ...);
void AppendFormat(UINT nFormatID, ...);
int Delete(int iIndex, int nCount = 1);
int Find(PCXSTR pszSub, int iStart=0) const throw();
int Find(XCHAR ch, int iStart=0) const throw();
int FindOneOf(PCXSTR pszCharSet) const throw();
void Format(UINT nFormatID, ...);
void Format(PCXSTR pszFormat, ...);
BOOL GetEnvironmentVariable(PCXSTR pszVar);
int Insert(int iIndex, PCXSTR psz);
int Insert(int iIndex, XCHAR ch);
CStringT Left(int nCount) const;
BOOL LoadString(HINSTANCE hInstance, UINT nID, WORD wLanguageID);
BOOL LoadString(HINSTANCE hInstance, UINT nID);
BOOL LoadString(UINT nID);
CStringT& MakeLower();
CStringT& MakeReverse();
CStringT& MakeUpper();
CStringT Mid(int iFirst, int nCount) const;
CStringT Mid(int iFirst) const;
int Replace(PCXSTR pszOld, PCXSTR pszNew);
int Replace(XCHAR chOld, XCHAR chNew);
CStringT Right(int nCount) const;
BSTR SetSysString(BSTR* pbstr) const;
CStringT SpanExcluding(PCXSTR pszCharSet) const;
CStringT SpanIncluding(PCXSTR pszCharSet) const;
CStringT Tokenize(PCXSTR pszTokens, int& iStart) const;
CStringT& Trim(XCHAR chTarget);
CStringT& Trim(PCXSTR pszTargets);
CStringT& Trim();
CStringT& TrimLeft(XCHAR chTarget);
CStringT& TrimLeft(PCXSTR pszTargets);
CStringT& TrimLeft();
CStringT& TrimRight(XCHAR chTarget);
CStringT& TrimRight(PCXSTR pszTargets);
CStringT& TrimRight();
};
void test_CStringT() {
VARIANT v = source<VARIANT>();
CStringT<char> s1(v);
sink(s1.GetString()); // $ ir
CStringT<char> s2(v, nullptr);
sink(s2.GetString()); // $ MISSING: ir
CStringT<char> s3(s2);
sink(s3.GetString()); // $ MISSING: ir
char* x = indirect_source<char>();
CStringT<char> s4(x);
sink(s4.GetString()); // $ ir
wchar_t* y = indirect_source<wchar_t>();
CStringT<wchar_t> s5(y);
sink(s5.GetString()); // $ ir
CStringT<char> s6(x, nullptr);
sink(s6.GetString()); // $ MISSING: ir
CStringT<wchar_t> s7(y, nullptr);
sink(s7.GetString()); // $ MISSING: ir
unsigned char* ucs = indirect_source<unsigned char>();
CStringT<char> s8(ucs);
sink(s8.GetString()); // $ ir
char c = source<char>();
CStringT<char> s9(c);
sink(s9.GetString()); // $ ir
wchar_t wc = source<wchar_t>();
CStringT<wchar_t> s10(wc);
sink(s10.GetString()); // $ ir
sink(&s1); // $ ast ir
auto bstr = s1.AllocSysString();
sink(bstr); // $ MISSING: ir
CStringT<char> s11;
s11.AppendFormat("%d", source<int>());
sink(s11.GetString()); // $ MISSING: ir
CStringT<char> s12;
s12.AppendFormat(indirect_source<char>());
sink(s12.GetString()); // $ MISSING: ir
CStringT<char> s13;
s13.AppendFormat(source<UINT>());
sink(s13.GetString()); // $ MISSING: ir
CStringT<char> s14;
s14.AppendFormat(42, source<char>());
sink(s14.GetString()); // $ MISSING: ir
CStringT<char> s15;
s15.AppendFormat(42, source<char>());
sink(s15.GetString()); // $ MISSING: ir
CStringT<char> s16;
s16.AppendFormat("%s", indirect_source<char>());
CStringT<char> s17;
s17.Insert(0, x);
sink(s17.GetString()); // $ MISSING: ir
CStringT<char> s18;
s18.Insert(0, source<char>());
sink(s18.GetString()); // $ MISSING: ir
sink(s1.Left(42).GetString()); // $ MISSING: ir
CStringT<char> s20;
s20.LoadString(source<UINT>());
sink(s20.GetString()); // $ MISSING: ir
sink(s1.MakeLower().GetString()); // $ MISSING: ir
sink(s1.MakeReverse().GetString()); // $ MISSING: ir
sink(s1.MakeUpper().GetString()); // $ MISSING: ir
sink(s1.Mid(0, 42).GetString()); // $ MISSING: ir
CStringT<char> s21;
s21.Replace("abc", x);
sink(s21.GetString()); // $ MISSING: ir
CStringT<char> s22;
s22.Replace('\n', source<char>());
sink(s22.GetString()); // $ MISSING: ir
sink(s2.Right(42).GetString()); // $ MISSING: ir
BSTR bstr2;
s1.SetSysString(&bstr2);
sink(bstr2); // $ ast MISSING: ir
sink(s1.SpanExcluding("abc").GetString()); // $ MISSING: ir
sink(s1.SpanIncluding("abc").GetString()); // $ MISSING: ir
int start = 0;
sink(s1.Tokenize("abc", start).GetString()); // $ MISSING: ir
sink(s1.Trim('a').GetString()); // $ MISSING: ir
sink(s1.Trim("abc").GetString()); // $ MISSING: ir
sink(s1.Trim().GetString()); // $ MISSING: ir
sink(s1.TrimLeft('a').GetString()); // $ MISSING: ir
sink(s1.TrimLeft("abc").GetString()); // $ MISSING: ir
sink(s1.TrimLeft().GetString()); // $ MISSING: ir
sink(s1.TrimRight('a').GetString()); // $ MISSING: ir
sink(s1.TrimRight("abc").GetString()); // $ MISSING: ir
sink(s1.TrimRight().GetString()); // $ MISSING: ir
}

View File

@@ -1022,6 +1022,277 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future
| atl.cpp:1004:24:1004:25 | call to CSimpleStringT | atl.cpp:1011:1:1011:1 | s9 | |
| atl.cpp:1005:3:1005:4 | ref arg s9 | atl.cpp:1006:8:1006:9 | s9 | |
| atl.cpp:1005:3:1005:4 | ref arg s9 | atl.cpp:1011:1:1011:1 | s9 | |
| atl.cpp:1099:15:1099:29 | call to source | atl.cpp:1101:21:1101:21 | v | |
| atl.cpp:1099:15:1099:29 | call to source | atl.cpp:1104:21:1104:21 | v | |
| atl.cpp:1101:21:1101:21 | v | atl.cpp:1101:21:1101:22 | call to CStringT | TAINT |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1102:8:1102:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1136:9:1136:10 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1138:15:1138:16 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1172:8:1172:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1178:8:1178:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1179:8:1179:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1180:8:1180:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1181:8:1181:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1194:3:1194:4 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1197:8:1197:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1198:8:1198:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1201:8:1201:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1203:8:1203:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1204:8:1204:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1101:21:1101:22 | call to CStringT | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1104:21:1104:31 | call to CStringT | atl.cpp:1105:8:1105:9 | s2 | |
| atl.cpp:1104:21:1104:31 | call to CStringT | atl.cpp:1107:21:1107:22 | s2 | |
| atl.cpp:1104:21:1104:31 | call to CStringT | atl.cpp:1191:8:1191:9 | s2 | |
| atl.cpp:1104:21:1104:31 | call to CStringT | atl.cpp:1212:1:1212:1 | s2 | |
| atl.cpp:1107:21:1107:22 | s2 | atl.cpp:1107:21:1107:23 | call to CStringT | |
| atl.cpp:1107:21:1107:23 | call to CStringT | atl.cpp:1108:8:1108:9 | s3 | |
| atl.cpp:1107:21:1107:23 | call to CStringT | atl.cpp:1212:1:1212:1 | s3 | |
| atl.cpp:1110:13:1110:33 | call to indirect_source | atl.cpp:1111:21:1111:21 | x | |
| atl.cpp:1110:13:1110:33 | call to indirect_source | atl.cpp:1118:21:1118:21 | x | |
| atl.cpp:1110:13:1110:33 | call to indirect_source | atl.cpp:1165:17:1165:17 | x | |
| atl.cpp:1110:13:1110:33 | call to indirect_source | atl.cpp:1184:22:1184:22 | x | |
| atl.cpp:1111:21:1111:21 | ref arg x | atl.cpp:1118:21:1118:21 | x | |
| atl.cpp:1111:21:1111:21 | ref arg x | atl.cpp:1165:17:1165:17 | x | |
| atl.cpp:1111:21:1111:21 | ref arg x | atl.cpp:1184:22:1184:22 | x | |
| atl.cpp:1111:21:1111:21 | x | atl.cpp:1111:21:1111:22 | call to CStringT | TAINT |
| atl.cpp:1111:21:1111:22 | call to CStringT | atl.cpp:1112:8:1112:9 | s4 | |
| atl.cpp:1111:21:1111:22 | call to CStringT | atl.cpp:1212:1:1212:1 | s4 | |
| atl.cpp:1114:16:1114:39 | call to indirect_source | atl.cpp:1115:24:1115:24 | y | |
| atl.cpp:1114:16:1114:39 | call to indirect_source | atl.cpp:1121:24:1121:24 | y | |
| atl.cpp:1115:24:1115:24 | ref arg y | atl.cpp:1121:24:1121:24 | y | |
| atl.cpp:1115:24:1115:24 | y | atl.cpp:1115:24:1115:25 | call to CStringT | TAINT |
| atl.cpp:1115:24:1115:25 | call to CStringT | atl.cpp:1116:8:1116:9 | s5 | |
| atl.cpp:1115:24:1115:25 | call to CStringT | atl.cpp:1212:1:1212:1 | s5 | |
| atl.cpp:1118:21:1118:31 | call to CStringT | atl.cpp:1119:8:1119:9 | s6 | |
| atl.cpp:1118:21:1118:31 | call to CStringT | atl.cpp:1212:1:1212:1 | s6 | |
| atl.cpp:1121:24:1121:34 | call to CStringT | atl.cpp:1122:8:1122:9 | s7 | |
| atl.cpp:1121:24:1121:34 | call to CStringT | atl.cpp:1212:1:1212:1 | s7 | |
| atl.cpp:1124:24:1124:53 | call to indirect_source | atl.cpp:1125:21:1125:23 | ucs | |
| atl.cpp:1125:21:1125:23 | ucs | atl.cpp:1125:21:1125:24 | call to CStringT | TAINT |
| atl.cpp:1125:21:1125:24 | call to CStringT | atl.cpp:1126:8:1126:9 | s8 | |
| atl.cpp:1125:21:1125:24 | call to CStringT | atl.cpp:1212:1:1212:1 | s8 | |
| atl.cpp:1128:12:1128:23 | call to source | atl.cpp:1129:21:1129:21 | c | |
| atl.cpp:1129:21:1129:21 | c | atl.cpp:1129:21:1129:22 | call to CStringT | TAINT |
| atl.cpp:1129:21:1129:22 | call to CStringT | atl.cpp:1130:8:1130:9 | s9 | |
| atl.cpp:1129:21:1129:22 | call to CStringT | atl.cpp:1212:1:1212:1 | s9 | |
| atl.cpp:1132:16:1132:30 | call to source | atl.cpp:1133:25:1133:26 | wc | |
| atl.cpp:1133:25:1133:26 | wc | atl.cpp:1133:25:1133:27 | call to CStringT | TAINT |
| atl.cpp:1133:25:1133:27 | call to CStringT | atl.cpp:1134:8:1134:10 | s10 | |
| atl.cpp:1133:25:1133:27 | call to CStringT | atl.cpp:1212:1:1212:1 | s10 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1136:9:1136:10 | s1 [inner post update] | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1138:15:1138:16 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1172:8:1172:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1178:8:1178:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1179:8:1179:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1180:8:1180:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1181:8:1181:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1194:3:1194:4 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1197:8:1197:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1198:8:1198:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1201:8:1201:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1203:8:1203:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1204:8:1204:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1136:8:1136:10 | ref arg & ... | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1136:9:1136:10 | s1 | atl.cpp:1136:8:1136:10 | & ... | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1172:8:1172:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1178:8:1178:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1179:8:1179:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1180:8:1180:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1181:8:1181:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1194:3:1194:4 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1197:8:1197:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1198:8:1198:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1201:8:1201:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1203:8:1203:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1204:8:1204:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1138:15:1138:16 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1138:18:1138:31 | call to AllocSysString | atl.cpp:1139:8:1139:11 | bstr | |
| atl.cpp:1141:18:1141:20 | call to CStringT | atl.cpp:1142:3:1142:5 | s11 | |
| atl.cpp:1141:18:1141:20 | call to CStringT | atl.cpp:1143:8:1143:10 | s11 | |
| atl.cpp:1141:18:1141:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s11 | |
| atl.cpp:1142:3:1142:5 | ref arg s11 | atl.cpp:1143:8:1143:10 | s11 | |
| atl.cpp:1142:3:1142:5 | ref arg s11 | atl.cpp:1212:1:1212:1 | s11 | |
| atl.cpp:1145:18:1145:20 | call to CStringT | atl.cpp:1146:3:1146:5 | s12 | |
| atl.cpp:1145:18:1145:20 | call to CStringT | atl.cpp:1147:8:1147:10 | s12 | |
| atl.cpp:1145:18:1145:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s12 | |
| atl.cpp:1146:3:1146:5 | ref arg s12 | atl.cpp:1147:8:1147:10 | s12 | |
| atl.cpp:1146:3:1146:5 | ref arg s12 | atl.cpp:1212:1:1212:1 | s12 | |
| atl.cpp:1149:18:1149:20 | call to CStringT | atl.cpp:1150:3:1150:5 | s13 | |
| atl.cpp:1149:18:1149:20 | call to CStringT | atl.cpp:1151:8:1151:10 | s13 | |
| atl.cpp:1149:18:1149:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s13 | |
| atl.cpp:1150:3:1150:5 | ref arg s13 | atl.cpp:1151:8:1151:10 | s13 | |
| atl.cpp:1150:3:1150:5 | ref arg s13 | atl.cpp:1212:1:1212:1 | s13 | |
| atl.cpp:1153:18:1153:20 | call to CStringT | atl.cpp:1154:3:1154:5 | s14 | |
| atl.cpp:1153:18:1153:20 | call to CStringT | atl.cpp:1155:8:1155:10 | s14 | |
| atl.cpp:1153:18:1153:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s14 | |
| atl.cpp:1154:3:1154:5 | ref arg s14 | atl.cpp:1155:8:1155:10 | s14 | |
| atl.cpp:1154:3:1154:5 | ref arg s14 | atl.cpp:1212:1:1212:1 | s14 | |
| atl.cpp:1157:18:1157:20 | call to CStringT | atl.cpp:1158:3:1158:5 | s15 | |
| atl.cpp:1157:18:1157:20 | call to CStringT | atl.cpp:1159:8:1159:10 | s15 | |
| atl.cpp:1157:18:1157:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s15 | |
| atl.cpp:1158:3:1158:5 | ref arg s15 | atl.cpp:1159:8:1159:10 | s15 | |
| atl.cpp:1158:3:1158:5 | ref arg s15 | atl.cpp:1212:1:1212:1 | s15 | |
| atl.cpp:1161:18:1161:20 | call to CStringT | atl.cpp:1162:3:1162:5 | s16 | |
| atl.cpp:1161:18:1161:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s16 | |
| atl.cpp:1162:3:1162:5 | ref arg s16 | atl.cpp:1212:1:1212:1 | s16 | |
| atl.cpp:1164:18:1164:20 | call to CStringT | atl.cpp:1165:3:1165:5 | s17 | |
| atl.cpp:1164:18:1164:20 | call to CStringT | atl.cpp:1166:8:1166:10 | s17 | |
| atl.cpp:1164:18:1164:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s17 | |
| atl.cpp:1165:3:1165:5 | ref arg s17 | atl.cpp:1166:8:1166:10 | s17 | |
| atl.cpp:1165:3:1165:5 | ref arg s17 | atl.cpp:1212:1:1212:1 | s17 | |
| atl.cpp:1168:18:1168:20 | call to CStringT | atl.cpp:1169:3:1169:5 | s18 | |
| atl.cpp:1168:18:1168:20 | call to CStringT | atl.cpp:1170:8:1170:10 | s18 | |
| atl.cpp:1168:18:1168:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s18 | |
| atl.cpp:1169:3:1169:5 | ref arg s18 | atl.cpp:1170:8:1170:10 | s18 | |
| atl.cpp:1169:3:1169:5 | ref arg s18 | atl.cpp:1212:1:1212:1 | s18 | |
| atl.cpp:1174:18:1174:20 | call to CStringT | atl.cpp:1175:3:1175:5 | s20 | |
| atl.cpp:1174:18:1174:20 | call to CStringT | atl.cpp:1176:8:1176:10 | s20 | |
| atl.cpp:1174:18:1174:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s20 | |
| atl.cpp:1175:3:1175:5 | ref arg s20 | atl.cpp:1176:8:1176:10 | s20 | |
| atl.cpp:1175:3:1175:5 | ref arg s20 | atl.cpp:1212:1:1212:1 | s20 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1179:8:1179:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1180:8:1180:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1181:8:1181:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1194:3:1194:4 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1197:8:1197:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1198:8:1198:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1201:8:1201:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1203:8:1203:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1204:8:1204:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1178:8:1178:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1180:8:1180:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1181:8:1181:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1194:3:1194:4 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1197:8:1197:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1198:8:1198:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1201:8:1201:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1203:8:1203:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1204:8:1204:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1179:8:1179:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1181:8:1181:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1194:3:1194:4 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1197:8:1197:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1198:8:1198:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1201:8:1201:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1203:8:1203:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1204:8:1204:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1180:8:1180:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1183:18:1183:20 | call to CStringT | atl.cpp:1184:3:1184:5 | s21 | |
| atl.cpp:1183:18:1183:20 | call to CStringT | atl.cpp:1185:8:1185:10 | s21 | |
| atl.cpp:1183:18:1183:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s21 | |
| atl.cpp:1184:3:1184:5 | ref arg s21 | atl.cpp:1185:8:1185:10 | s21 | |
| atl.cpp:1184:3:1184:5 | ref arg s21 | atl.cpp:1212:1:1212:1 | s21 | |
| atl.cpp:1187:18:1187:20 | call to CStringT | atl.cpp:1188:3:1188:5 | s22 | |
| atl.cpp:1187:18:1187:20 | call to CStringT | atl.cpp:1189:8:1189:10 | s22 | |
| atl.cpp:1187:18:1187:20 | call to CStringT | atl.cpp:1212:1:1212:1 | s22 | |
| atl.cpp:1188:3:1188:5 | ref arg s22 | atl.cpp:1189:8:1189:10 | s22 | |
| atl.cpp:1188:3:1188:5 | ref arg s22 | atl.cpp:1212:1:1212:1 | s22 | |
| atl.cpp:1193:8:1193:12 | bstr2 | atl.cpp:1194:20:1194:24 | bstr2 | |
| atl.cpp:1193:8:1193:12 | bstr2 | atl.cpp:1195:8:1195:12 | bstr2 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1197:8:1197:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1198:8:1198:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1201:8:1201:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1203:8:1203:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1204:8:1204:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1194:3:1194:4 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1194:19:1194:24 | ref arg & ... | atl.cpp:1194:20:1194:24 | bstr2 [inner post update] | |
| atl.cpp:1194:19:1194:24 | ref arg & ... | atl.cpp:1195:8:1195:12 | bstr2 | |
| atl.cpp:1194:20:1194:24 | bstr2 | atl.cpp:1194:19:1194:24 | & ... | |
| atl.cpp:1200:14:1200:15 | 0 | atl.cpp:1201:27:1201:31 | start | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1204:8:1204:9 | s1 | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1203:8:1203:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1204:8:1204:9 | ref arg s1 | atl.cpp:1205:8:1205:9 | s1 | |
| atl.cpp:1204:8:1204:9 | ref arg s1 | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1204:8:1204:9 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1204:8:1204:9 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1204:8:1204:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1204:8:1204:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1204:8:1204:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1204:8:1204:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1205:8:1205:9 | ref arg s1 | atl.cpp:1206:8:1206:9 | s1 | |
| atl.cpp:1205:8:1205:9 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1205:8:1205:9 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1205:8:1205:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1205:8:1205:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1205:8:1205:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1205:8:1205:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1206:8:1206:9 | ref arg s1 | atl.cpp:1207:8:1207:9 | s1 | |
| atl.cpp:1206:8:1206:9 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1206:8:1206:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1206:8:1206:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1206:8:1206:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1206:8:1206:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1207:8:1207:9 | ref arg s1 | atl.cpp:1208:8:1208:9 | s1 | |
| atl.cpp:1207:8:1207:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1207:8:1207:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1207:8:1207:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1207:8:1207:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1208:8:1208:9 | ref arg s1 | atl.cpp:1209:8:1209:9 | s1 | |
| atl.cpp:1208:8:1208:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1208:8:1208:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1208:8:1208:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1209:8:1209:9 | ref arg s1 | atl.cpp:1210:8:1210:9 | s1 | |
| atl.cpp:1209:8:1209:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1209:8:1209:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1210:8:1210:9 | ref arg s1 | atl.cpp:1211:8:1211:9 | s1 | |
| atl.cpp:1210:8:1210:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| atl.cpp:1211:8:1211:9 | ref arg s1 | atl.cpp:1212:1:1212:1 | s1 | |
| bsd.cpp:17:11:17:16 | call to source | bsd.cpp:20:18:20:18 | s | |
| bsd.cpp:18:12:18:15 | addr | bsd.cpp:20:22:20:25 | addr | |
| bsd.cpp:18:12:18:15 | addr | bsd.cpp:23:8:23:11 | addr | |

View File

@@ -119,6 +119,22 @@ signatureMatches
| atl.cpp:928:15:928:33 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 |
| atl.cpp:938:8:938:16 | SetString | (LPCOLESTR,int) | CComBSTR | Append | 1 |
| atl.cpp:939:8:939:16 | SetString | (PCXSTR) | CSimpleStringT | operator+= | 0 |
| atl.cpp:1036:3:1036:10 | CStringT | (PCXSTR,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 1 |
| atl.cpp:1041:3:1041:10 | CStringT | (PCXSTR,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 1 |
| atl.cpp:1042:3:1042:10 | CStringT | (PCXSTR,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 1 |
| atl.cpp:1048:3:1048:10 | CStringT | (LPCOLESTR,int) | CComBSTR | Append | 1 |
| atl.cpp:1049:3:1049:10 | CStringT | (LPCOLESTR,int) | CComBSTR | Append | 1 |
| atl.cpp:1060:8:1060:19 | AppendFormat | (PCXSTR) | CSimpleStringT | operator+= | 0 |
| atl.cpp:1061:8:1061:19 | AppendFormat | (UINT) | CComBSTR | LoadString | 0 |
| atl.cpp:1061:8:1061:19 | AppendFormat | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 |
| atl.cpp:1074:8:1074:17 | LoadString | (UINT) | CComBSTR | LoadString | 0 |
| atl.cpp:1074:8:1074:17 | LoadString | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 |
| atl.cpp:1078:12:1078:14 | Mid | (LPCOLESTR,int) | CComBSTR | Append | 1 |
| atl.cpp:1084:12:1084:24 | SpanExcluding | (PCXSTR) | CSimpleStringT | operator+= | 0 |
| atl.cpp:1085:12:1085:24 | SpanIncluding | (PCXSTR) | CSimpleStringT | operator+= | 0 |
| atl.cpp:1088:13:1088:16 | Trim | (PCXSTR) | CSimpleStringT | operator+= | 0 |
| atl.cpp:1091:13:1091:20 | TrimLeft | (PCXSTR) | CSimpleStringT | operator+= | 0 |
| atl.cpp:1094:13:1094:21 | TrimRight | (PCXSTR) | CSimpleStringT | operator+= | 0 |
| constructor_delegation.cpp:10:2:10:8 | MyValue | (LPCOLESTR,int) | CComBSTR | Append | 1 |
| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (LPCOLESTR,int) | CComBSTR | Append | 1 |
| standalone_iterators.cpp:103:27:103:36 | operator+= | (LPCOLESTR,int) | CComBSTR | Append | 1 |
@@ -766,6 +782,47 @@ getParameterTypeName
| atl.cpp:938:8:938:16 | SetString | 1 | int |
| atl.cpp:939:8:939:16 | SetString | 0 | PCXSTR |
| atl.cpp:941:9:941:18 | operator[] | 0 | int |
| atl.cpp:1035:3:1035:10 | CStringT | 0 | const VARIANT & |
| atl.cpp:1036:3:1036:10 | CStringT | 0 | const VARIANT & |
| atl.cpp:1036:3:1036:10 | CStringT | 1 | IAtlStringMgr * |
| atl.cpp:1037:3:1037:10 | CStringT | 0 | const CStringT & |
| atl.cpp:1041:3:1041:10 | CStringT | 0 | LPCSTR |
| atl.cpp:1041:3:1041:10 | CStringT | 1 | IAtlStringMgr * |
| atl.cpp:1042:3:1042:10 | CStringT | 0 | LPCWSTR |
| atl.cpp:1042:3:1042:10 | CStringT | 1 | IAtlStringMgr * |
| atl.cpp:1044:3:1044:10 | CStringT | 0 | char * |
| atl.cpp:1045:3:1045:10 | CStringT | 0 | unsigned char * |
| atl.cpp:1046:3:1046:10 | CStringT | 0 | wchar_t * |
| atl.cpp:1048:3:1048:10 | CStringT | 0 | char |
| atl.cpp:1048:3:1048:10 | CStringT | 1 | int |
| atl.cpp:1049:3:1049:10 | CStringT | 0 | wchar_t |
| atl.cpp:1049:3:1049:10 | CStringT | 1 | int |
| atl.cpp:1060:8:1060:19 | AppendFormat | 0 | PCXSTR |
| atl.cpp:1061:8:1061:19 | AppendFormat | 0 | UINT |
| atl.cpp:1069:7:1069:12 | Insert | 0 | int |
| atl.cpp:1069:7:1069:12 | Insert | 1 | PCXSTR |
| atl.cpp:1070:7:1070:12 | Insert | 0 | int |
| atl.cpp:1070:7:1070:12 | Insert | 1 | XCHAR |
| atl.cpp:1071:12:1071:15 | Left | 0 | int |
| atl.cpp:1074:8:1074:17 | LoadString | 0 | UINT |
| atl.cpp:1078:12:1078:14 | Mid | 0 | int |
| atl.cpp:1078:12:1078:14 | Mid | 1 | int |
| atl.cpp:1080:7:1080:13 | Replace | 0 | PCXSTR |
| atl.cpp:1080:7:1080:13 | Replace | 1 | PCXSTR |
| atl.cpp:1081:7:1081:13 | Replace | 0 | XCHAR |
| atl.cpp:1081:7:1081:13 | Replace | 1 | XCHAR |
| atl.cpp:1082:12:1082:16 | Right | 0 | int |
| atl.cpp:1083:8:1083:19 | SetSysString | 0 | BSTR * |
| atl.cpp:1084:12:1084:24 | SpanExcluding | 0 | PCXSTR |
| atl.cpp:1085:12:1085:24 | SpanIncluding | 0 | PCXSTR |
| atl.cpp:1086:12:1086:19 | Tokenize | 0 | PCXSTR |
| atl.cpp:1086:12:1086:19 | Tokenize | 1 | int & |
| atl.cpp:1087:13:1087:16 | Trim | 0 | XCHAR |
| atl.cpp:1088:13:1088:16 | Trim | 0 | PCXSTR |
| atl.cpp:1090:13:1090:20 | TrimLeft | 0 | XCHAR |
| atl.cpp:1091:13:1091:20 | TrimLeft | 0 | PCXSTR |
| atl.cpp:1093:13:1093:21 | TrimRight | 0 | XCHAR |
| atl.cpp:1094:13:1094:21 | TrimRight | 0 | PCXSTR |
| bsd.cpp:6:8:6:8 | operator= | 0 | const sockaddr & |
| bsd.cpp:6:8:6:8 | operator= | 0 | sockaddr && |
| bsd.cpp:12:5:12:10 | accept | 0 | int |