Skip to content

Commit e5ce171

Browse files
authored
[ClangCL] Fix warning for DxilDia (microsoft#5693)
1. add override for override methods. 2. remove unnecessary std::move 3. remove unused lambda capture 4. use same enum when compare. 5. fix field order in constructor. 6. add const for when cast from a const variable.
1 parent 517e702 commit e5ce171

15 files changed

+55
-31
lines changed

lib/DxilDia/DxcPixDxilDebugInfo.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ class DxcPixDxilDebugInfo : public IDxcPixDxilDebugInfo {
4949
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
5050
DXC_MICROCOM_TM_ALLOC(DxcPixDxilDebugInfo)
5151

52-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
52+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
53+
void **ppvObject) override {
5354
return DoBasicQueryInterface<IDxcPixDxilDebugInfo>(this, iid, ppvObject);
5455
}
5556

@@ -94,7 +95,8 @@ class DxcPixDxilInstructionOffsets : public IDxcPixDxilInstructionOffsets {
9495
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
9596
DXC_MICROCOM_TM_ALLOC(DxcPixDxilInstructionOffsets)
9697

97-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
98+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
99+
void **ppvObject) override {
98100
return DoBasicQueryInterface<IDxcPixDxilInstructionOffsets>(this, iid,
99101
ppvObject);
100102
}
@@ -121,7 +123,8 @@ class DxcPixDxilSourceLocations : public IDxcPixDxilSourceLocations {
121123
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
122124
DXC_MICROCOM_TM_ALLOC(DxcPixDxilSourceLocations)
123125

124-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
126+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
127+
void **ppvObject) override {
125128
return DoBasicQueryInterface<IDxcPixDxilSourceLocations>(this, iid,
126129
ppvObject);
127130
}

lib/DxilDia/DxcPixDxilStorage.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ class DxcPixDxilArrayStorage : public IDxcPixDxilStorage {
5959
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
6060
DXC_MICROCOM_TM_ALLOC(DxcPixDxilArrayStorage)
6161

62-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
62+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
63+
void **ppvObject) override {
6364
return DoBasicQueryInterface<IDxcPixDxilStorage>(this, iid, ppvObject);
6465
}
6566

@@ -96,7 +97,8 @@ class DxcPixDxilStructStorage : public IDxcPixDxilStorage {
9697
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
9798
DXC_MICROCOM_TM_ALLOC(DxcPixDxilStructStorage)
9899

99-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
100+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
101+
void **ppvObject) override {
100102
return DoBasicQueryInterface<IDxcPixDxilStorage>(this, iid, ppvObject);
101103
}
102104

@@ -133,7 +135,8 @@ class DxcPixDxilScalarStorage : public IDxcPixDxilStorage {
133135
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
134136
DXC_MICROCOM_TM_ALLOC(DxcPixDxilScalarStorage)
135137

136-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
138+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
139+
void **ppvObject) override {
137140
return DoBasicQueryInterface<IDxcPixDxilStorage>(this, iid, ppvObject);
138141
}
139142

lib/DxilDia/DxcPixTypes.h

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ class DxcPixConstType : public IDxcPixConstType {
4545
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
4646
DXC_MICROCOM_TM_ALLOC(DxcPixConstType)
4747

48-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
48+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
49+
void **ppvObject) override {
4950
return DoBasicQueryInterface<IDxcPixConstType, IDxcPixType>(this, iid,
5051
ppvObject);
5152
}
@@ -75,7 +76,8 @@ class DxcPixTypedefType : public IDxcPixTypedefType {
7576
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
7677
DXC_MICROCOM_TM_ALLOC(DxcPixTypedefType)
7778

78-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
79+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
80+
void **ppvObject) override {
7981
return DoBasicQueryInterface<IDxcPixTypedefType, IDxcPixType>(this, iid,
8082
ppvObject);
8183
}
@@ -101,7 +103,8 @@ class DxcPixScalarType : public IDxcPixScalarType {
101103
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
102104
DXC_MICROCOM_TM_ALLOC(DxcPixScalarType)
103105

104-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
106+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
107+
void **ppvObject) override {
105108
return DoBasicQueryInterface<IDxcPixScalarType, IDxcPixType>(this, iid,
106109
ppvObject);
107110
}
@@ -141,7 +144,8 @@ class DxcPixArrayType : public IDxcPixArrayType {
141144
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
142145
DXC_MICROCOM_TM_ALLOC(DxcPixArrayType)
143146

144-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
147+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
148+
void **ppvObject) override {
145149
return DoBasicQueryInterface<IDxcPixArrayType, IDxcPixType>(this, iid,
146150
ppvObject);
147151
}
@@ -181,7 +185,8 @@ class DxcPixStructType : public IDxcPixStructType2 {
181185
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
182186
DXC_MICROCOM_TM_ALLOC(DxcPixStructType)
183187

184-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
188+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
189+
void **ppvObject) override {
185190
return DoBasicQueryInterface<IDxcPixStructType2, IDxcPixStructType,
186191
IDxcPixType>(this, iid, ppvObject);
187192
}
@@ -221,7 +226,8 @@ class DxcPixStructField : public IDxcPixStructField {
221226
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
222227
DXC_MICROCOM_TM_ALLOC(DxcPixStructField)
223228

224-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
229+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
230+
void **ppvObject) override {
225231
return DoBasicQueryInterface<IDxcPixStructField>(this, iid, ppvObject);
226232
}
227233

lib/DxilDia/DxcPixVariables.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ template <typename T> class DxcPixVariable : public IDxcPixVariable {
4747
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
4848
DXC_MICROCOM_TM_ALLOC(DxcPixVariable)
4949

50-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
50+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
51+
void **ppvObject) override {
5152
return DoBasicQueryInterface<IDxcPixVariable>(this, iid, ppvObject);
5253
}
5354

lib/DxilDia/DxilDiaDataSource.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ getMemBufferFromBlob(IDxcBlob *pBlob, const llvm::Twine &BufferName) {
5050
}
5151

5252
std::unique_ptr<llvm::MemoryBuffer>
53-
getMemBufferFromStream(IStream *pStream, const llvm::Twine &BufferName) {
53+
getMemBufferFromStream(IStream *pStream, std::vector<char> &DataContainer,
54+
const llvm::Twine &BufferName) {
5455
CComPtr<IDxcBlob> pBlob;
5556
if (SUCCEEDED(pStream->QueryInterface(&pBlob))) {
5657
return getMemBufferFromBlob(pBlob, BufferName);
@@ -59,11 +60,13 @@ getMemBufferFromStream(IStream *pStream, const llvm::Twine &BufferName) {
5960
STATSTG statstg;
6061
IFT(pStream->Stat(&statstg, STATFLAG_NONAME));
6162
size_t size = statstg.cbSize.LowPart;
62-
std::unique_ptr<llvm::MemoryBuffer> result(
63-
llvm::MemoryBuffer::getNewUninitMemBuffer(size, BufferName));
64-
char *pBuffer = (char *)result.get()->getBufferStart();
63+
64+
DataContainer.resize(size);
6565
ULONG read;
66-
IFT(pStream->Read(pBuffer, size, &read));
66+
IFT(pStream->Read(DataContainer.data(), size, &read));
67+
llvm::StringRef Str(DataContainer.data(), size);
68+
std::unique_ptr<llvm::MemoryBuffer> result(
69+
llvm::MemoryBuffer::getMemBuffer(Str, BufferName.str(), false));
6770
return result;
6871
}
6972
} // namespace dxil_dia
@@ -110,8 +113,10 @@ STDMETHODIMP dxil_dia::DataSource::loadDataFromIStream(IStream *pInputIStream) {
110113
m_context = std::make_shared<llvm::LLVMContext>();
111114
llvm::MemoryBuffer *pBitcodeBuffer;
112115
std::unique_ptr<llvm::MemoryBuffer> pEmbeddedBuffer;
116+
117+
std::vector<char> DataContainer;
113118
std::unique_ptr<llvm::MemoryBuffer> pBuffer =
114-
getMemBufferFromStream(pIStream, "data");
119+
getMemBufferFromStream(pIStream, DataContainer, "data");
115120
size_t bufferSize = pBuffer->getBufferSize();
116121

117122
// The buffer can hold LLVM bitcode for a module, or the ILDB
@@ -128,8 +133,8 @@ STDMETHODIMP dxil_dia::DataSource::loadDataFromIStream(IStream *pInputIStream) {
128133
return DXC_E_MALFORMED_CONTAINER;
129134
}
130135

131-
hlsl::DxilProgramHeader *pDxilProgramHeader =
132-
(hlsl::DxilProgramHeader *)pBuffer->getBufferStart();
136+
const hlsl::DxilProgramHeader *pDxilProgramHeader =
137+
(const hlsl::DxilProgramHeader *)pBuffer->getBufferStart();
133138
if (pDxilProgramHeader->BitcodeHeader.DxilMagic != hlsl::DxilMagicValue) {
134139
return DXC_E_MALFORMED_CONTAINER;
135140
}

lib/DxilDia/DxilDiaDataSource.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class DataSource : public IDiaDataSource {
3636
public:
3737
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
3838

39-
STDMETHODIMP QueryInterface(REFIID iid, void **ppvObject) {
39+
STDMETHODIMP QueryInterface(REFIID iid, void **ppvObject) override {
4040
return DoBasicQueryInterface<IDiaDataSource>(this, iid, ppvObject);
4141
}
4242

lib/DxilDia/DxilDiaEnumTables.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ class EnumTables : public IDiaEnumTables {
3737
public:
3838
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
3939

40-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
40+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
41+
void **ppvObject) override {
4142
return DoBasicQueryInterface<IDiaEnumTables>(this, iid, ppvObject);
4243
}
4344

lib/DxilDia/DxilDiaSession.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ STDMETHODIMP dxil_dia::Session::findLinesByLinenum(
302302
std::vector<const llvm::Instruction *> lines;
303303

304304
std::function<bool(DWORD, DWORD)> column_matches =
305-
[column](DWORD colStart, DWORD colEnd) -> bool { return true; };
305+
[](DWORD colStart, DWORD colEnd) -> bool { return true; };
306306

307307
if (column != 0) {
308308
column_matches = [column](DWORD colStart, DWORD colEnd) -> bool {

lib/DxilDia/DxilDiaSession.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ class Session : public IDiaSession, public IDxcPixDxilDebugInfoFactory {
7575

7676
HRESULT getSourceFileIdByName(llvm::StringRef fileName, DWORD *pRetVal);
7777

78-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
78+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
79+
void **ppvObject) override {
7980
return DoBasicQueryInterface<IDiaSession, IDxcPixDxilDebugInfoFactory>(
8081
this, iid, ppvObject);
8182
}

lib/DxilDia/DxilDiaTable.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ class TableBase : public IDiaTable, public T {
7575
public:
7676
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
7777

78-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject) {
78+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
79+
void **ppvObject) override {
7980
return DoBasicQueryInterface<IDiaTable, T, IEnumUnknown>(this, iid,
8081
ppvObject);
8182
}

0 commit comments

Comments
 (0)