Skip to content

Commit f206b3d

Browse files
authored
WArgV is needed only on non-Windows platforms (microsoft#5576)
Fixes internal build break.
1 parent 50cf4e4 commit f206b3d

File tree

4 files changed

+10
-32
lines changed

4 files changed

+10
-32
lines changed

include/dxc/WinAdapter.h

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,25 +1065,18 @@ class CComBSTR
10651065

10661066
};
10671067

1068-
1069-
#endif // __cplusplus
1070-
1071-
#endif // _WIN32
1072-
1073-
#ifdef __cplusplus
1074-
1075-
#include <string>
1076-
#include <vector>
10771068
//===--------- Convert argv to wchar ----------------===//
10781069
class WArgV {
10791070
std::vector<std::wstring> WStringVector;
10801071
std::vector<const wchar_t *> WCharPtrVector;
10811072

10821073
public:
10831074
WArgV(int argc, const char **argv);
1084-
WArgV(int argc, const wchar_t **argv);
10851075
const wchar_t **argv() { return WCharPtrVector.data();}
10861076
};
1087-
#endif
1077+
1078+
#endif // __cplusplus
1079+
1080+
#endif // _WIN32
10881081

10891082
#endif // LLVM_SUPPORT_WIN_ADAPTER_H

lib/DxcSupport/WinAdapter.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,6 @@ bool CComBSTR::operator==(_In_ const CComBSTR &bstrSrc) const throw() {
9797
return wcscmp(m_str, bstrSrc.m_str) == 0;
9898
}
9999

100-
#endif
101-
102100
//===--------------------------- WArgV -------------------------------===//
103101
WArgV::WArgV(int argc, const char **argv)
104102
: WStringVector(argc), WCharPtrVector(argc) {
@@ -115,9 +113,4 @@ WArgV::WArgV(int argc, const char **argv)
115113
}
116114
}
117115

118-
WArgV::WArgV(int argc, const wchar_t **argv)
119-
: WCharPtrVector(argc) {
120-
for (int i = 0; i < argc; ++i) {
121-
WCharPtrVector[i] = argv[i];
122-
}
123-
}
116+
#endif

tools/clang/tools/dxr/dxr.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ using namespace hlsl::options;
3535
#ifdef _WIN32
3636
int __cdecl wmain(int argc, const wchar_t **argv_) {
3737
#else
38-
int main(int argc, const char **argv_) {
38+
int main(int argc, const char **argv) {
39+
// Convert argv to wchar.
40+
WArgV ArgV(argc, argv);
41+
const wchar_t **argv_ = ArgV.argv();
3942
#endif
4043
if (FAILED(DxcInitThreadMalloc())) return 1;
4144
DxcSetThreadMallocToDefault();
@@ -130,10 +133,8 @@ int main(int argc, const char **argv_) {
130133
IFT(pLibrary->CreateIncludeHandler(&pIncludeHandler));
131134
IFT(dxcSupport.CreateInstance(CLSID_DxcRewriter, &pRewriter));
132135

133-
// Convert argv to wchar.
134-
WArgV ArgV(argc, argv_);
135136
IFT(pRewriter->RewriteWithOptions(pSource, wName.c_str(),
136-
ArgV.argv(), argc, nullptr, 0,
137+
argv_, argc, nullptr, 0,
137138
pIncludeHandler, &pRewriteResult));
138139

139140
if (dxcOpts.OutputObject.empty()) {

unittests/DxcSupport/WinAdapterTest.cpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,7 @@ TEST(WArgVTest, suppressAndTrap) {
2323
std::wstring data [] = {L"a", L"b"};
2424
const wchar_t *ref_argv[] = {data[0].c_str(), data[1].c_str()};
2525
{
26-
WArgV ArgV(argc, ref_argv);
27-
const wchar_t **wargv = ArgV.argv();
28-
for (int i=0;i<argc;++i) {
29-
EXPECT_EQ(0, std::wcscmp(ref_argv[i], wargv[i]));
30-
}
31-
}
32-
{
33-
int argc=2;
3426
const char *argv [] = {"a", "b"};
35-
3627
WArgV ArgV(argc, argv);
3728
const wchar_t **wargv = ArgV.argv();
3829
for (int i=0;i<argc;++i) {

0 commit comments

Comments
 (0)