Skip to content

Commit dd8a287

Browse files
authored
[ClangCL] fix warning in DxbcConverter (microsoft#5694)
1. fix order of fields in constructor. 2. fix compare warning for type mismatch by cast to same type. 3. use {} instead of {0} when initialize to all zero. 4. add override for override methods.
1 parent 0dc8d90 commit dd8a287

File tree

7 files changed

+37
-45
lines changed

7 files changed

+37
-45
lines changed

include/dxc/DxilContainer/DxilContainerReader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
namespace hlsl {
2020

21-
#define DXIL_CONTAINER_BLOB_NOT_FOUND -1
21+
const uint32_t DXIL_CONTAINER_BLOB_NOT_FOUND = UINT_MAX;
2222

2323
struct DxilContainerHeader;
2424

projects/dxilconv/include/DxilConvPasses/ScopeNestIterator.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,7 @@ class ScopeNestIterator {
265265
public:
266266
Scope(Type scopeType, Block *startBlock, BranchKind annotation)
267267
: m_type(scopeType), m_startAnnotation(annotation),
268-
m_startBlock(startBlock), m_endBlock(nullptr), m_backedge(nullptr)
269-
270-
{
268+
m_startBlock(startBlock), m_endBlock(nullptr), m_backedge(nullptr) {
271269
if (m_type == Type::If) {
272270
DXASSERT_NOMSG(startBlock &&
273271
startBlock->getTerminator()->getNumSuccessors() == 2);

projects/dxilconv/lib/DxbcConverter/DxbcConverter.cpp

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,7 @@ void DxbcConverter::ExtractSignatureFromDXBC(
557557
#endif
558558

559559
for (unsigned iElement = 0; iElement < uParamCount; iElement++) {
560-
D3D11_INTERNALSHADER_PARAMETER_11_1 P = {0};
560+
D3D11_INTERNALSHADER_PARAMETER_11_1 P = {};
561561
// Properly copy parameters for the serialized form into P.
562562
switch (uElemSize) {
563563
case sizeof(D3D11_INTERNALSHADER_PARAMETER_11_1):
@@ -753,7 +753,7 @@ void DxbcConverter::ExtractSignatureFromDDI(
753753

754754
// For PS output, try to disambiguate semantic based on register index.
755755
if (m_pSM->IsPS() && SigHelper.IsOutput()) {
756-
if (P.Register != -1) {
756+
if (P.Register != UINT_MAX) {
757757
// This must be SV_Target.
758758
E.SemanticName = "SV_Target";
759759
E.SemanticIndex = P.Register;
@@ -802,7 +802,7 @@ void DxbcConverter::ExtractSignatureFromDDI(
802802
} else {
803803
E.SemanticName = string(DXBC::GetD3D10SBName(P.SystemValue));
804804
E.SemanticIndex = DXBC::GetD3D10SBSemanticIndex(P.SystemValue);
805-
if (P.RegisterComponentType != D3D_REGISTER_COMPONENT_UNKNOWN) {
805+
if (P.RegisterComponentType != D3D10_SB_REGISTER_COMPONENT_UNKNOWN) {
806806
E.ComponentType = DXBC::GetCompTypeWithMinPrec(
807807
(D3D_REGISTER_COMPONENT_TYPE)P.RegisterComponentType,
808808
(D3D11_SB_OPERAND_MIN_PRECISION)P.MinPrecision);
@@ -1652,7 +1652,7 @@ void DxbcConverter::AnalyzeShader(
16521652
break;
16531653

16541654
default: {
1655-
unsigned NumUnits, Row;
1655+
unsigned NumUnits = 0, Row = 0;
16561656
switch (Inst.m_Operands[0].m_IndexDimension) {
16571657
case D3D10_SB_OPERAND_INDEX_1D:
16581658
NumUnits = 0;
@@ -2832,7 +2832,6 @@ void DxbcConverter::ConvertInstructions(
28322832
LoadOperand(In, Inst, SrcIdx, WriteMask, CompType::getU32());
28332833

28342834
OP::OpCode OpCode = OP::OpCode::LegacyF16ToF32;
2835-
CompType DstType = CompType::getF32();
28362835
Function *F = m_pOP->GetOpFunc(OpCode, Type::getVoidTy(m_Ctx));
28372836

28382837
for (BYTE c = 0; c < DXBC::kWidth; c++) {
@@ -3755,7 +3754,6 @@ void DxbcConverter::ConvertInstructions(
37553754
ValueType);
37563755
}
37573756

3758-
CompType DstType = CompType::getI32();
37593757
Type *pDstType = Type::getInt32PtrTy(m_Ctx, DXIL::kTGSMAddrSpace);
37603758

37613759
// Value.
@@ -3776,8 +3774,6 @@ void DxbcConverter::ConvertInstructions(
37763774
pRetVal = m_pBuilder->CreateAtomicCmpXchg(
37773775
pPtr, InCompareValue[0], InValue[0], AtomicOrdering::Monotonic,
37783776
AtomicOrdering::Monotonic);
3779-
Type *RetTypeFields[2] = {Type::getInt32Ty(m_Ctx),
3780-
Type::getInt1Ty(m_Ctx)};
37813777
pRetVal = m_pBuilder->CreateExtractValue(pRetVal, 0);
37823778
}
37833779

@@ -6181,10 +6177,6 @@ void DxbcConverter::StoreGetDimensionsOutput(
61816177
R = &m_pPR->GetUAV(m_UAVRangeMap[RangeID]);
61826178
}
61836179

6184-
// Return type.
6185-
CompType RetType = DXBC::GetCompTypeWithMinPrec(
6186-
CompType::getI32(), Inst.m_Operands[uOpOutput].m_MinPrecision);
6187-
61886180
// Value type.
61896181
CompType ValueType = CompType::getI32();
61906182
bool bRcp = false;
@@ -8315,7 +8307,7 @@ Value *DxbcConverter::MarkPrecise(Value *pVal, BYTE Comp) {
83158307
void DxbcConverter::SerializeDxil(SmallVectorImpl<char> &DxilBitcode) {
83168308
raw_svector_ostream DxilStream(DxilBitcode);
83178309
// a. Reserve header.
8318-
DxilProgramHeader Header = {0};
8310+
DxilProgramHeader Header = {};
83198311
DxilStream.write((char *)&Header, sizeof(Header));
83208312
// b. Bitcode.
83218313
WriteBitcodeToFile(m_pModule.get(), DxilStream);

projects/dxilconv/lib/DxbcConverter/DxbcConverterImpl.h

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -246,10 +246,10 @@ class SignatureHelper {
246246
DXASSERT(E->IsAllocated(),
247247
"otherwise signature elements were not set correctly");
248248
DXASSERT(E->GetStartRow() <= (int)Reg &&
249-
(int)Reg < E->GetStartRow() + E->GetRows(),
249+
Reg < E->GetStartRow() + E->GetRows(),
250250
"otherwise signature elements were not set correctly");
251251
DXASSERT(E->GetStartCol() <= (int)Comp &&
252-
(int)Comp < E->GetStartCol() + E->GetCols(),
252+
Comp < E->GetStartCol() + E->GetCols(),
253253
"otherwise signature elements were not set correctly");
254254
return E;
255255
}
@@ -290,7 +290,7 @@ class DxbcConverter : public IDxbcConverter {
290290
public:
291291
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL();
292292

293-
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) {
293+
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) override {
294294
return DoBasicQueryInterface<IDxbcConverter>(this, iid, ppv);
295295
}
296296

@@ -300,18 +300,16 @@ class DxbcConverter : public IDxbcConverter {
300300

301301
~DxbcConverter();
302302

303-
__override HRESULT STDMETHODCALLTYPE Convert(LPCVOID pDxbc, UINT32 DxbcSize,
304-
LPCWSTR pExtraOptions,
305-
LPVOID *ppDxil,
306-
UINT32 *pDxilSize,
307-
LPWSTR *ppDiag);
303+
HRESULT STDMETHODCALLTYPE Convert(LPCVOID pDxbc, UINT32 DxbcSize,
304+
LPCWSTR pExtraOptions, LPVOID *ppDxil,
305+
UINT32 *pDxilSize, LPWSTR *ppDiag) override;
308306

309-
__override HRESULT STDMETHODCALLTYPE ConvertInDriver(
307+
HRESULT STDMETHODCALLTYPE ConvertInDriver(
310308
const UINT32 *pBytecode, LPCVOID pInputSignature,
311309
UINT32 NumInputSignatureElements, LPCVOID pOutputSignature,
312310
UINT32 NumOutputSignatureElements, LPCVOID pPatchConstantSignature,
313311
UINT32 NumPatchConstantSignatureElements, LPCWSTR pExtraOptions,
314-
IDxcBlob **ppDxilModule, LPWSTR *ppDiag);
312+
IDxcBlob **ppDxilModule, LPWSTR *ppDiag) override;
315313

316314
protected:
317315
LLVMContext m_Ctx;

projects/dxilconv/lib/DxbcConverter/DxbcUtil.cpp

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ BYTE CMask::ToByte() const {
5656
return m_Mask;
5757
}
5858

59-
static bool IsSet(BYTE Mask, BYTE c) { return CMask(Mask).IsSet(c); }
60-
6159
bool CMask::IsSet(BYTE c) const {
6260
DXASSERT(c < DXBC::kWidth, "otherwise the caller did not check");
6361
return (m_Mask & (1 << c)) != 0;
@@ -1353,20 +1351,25 @@ static_assert(D3D10_SB_4_COMPONENT_Y == 1, MSG);
13531351
static_assert(D3D10_SB_4_COMPONENT_Z == 2, MSG);
13541352
static_assert(D3D10_SB_4_COMPONENT_W == 3, MSG);
13551353

1356-
static_assert(D3D_MIN_PRECISION_DEFAULT ==
1357-
D3D11_SB_OPERAND_MIN_PRECISION_DEFAULT,
1358-
MSG);
1359-
static_assert(D3D_MIN_PRECISION_FLOAT_16 ==
1360-
D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_16,
1361-
MSG);
1354+
static_assert(
1355+
D3D_MIN_PRECISION_DEFAULT ==
1356+
static_cast<D3D_MIN_PRECISION>(D3D11_SB_OPERAND_MIN_PRECISION_DEFAULT),
1357+
MSG);
1358+
static_assert(
1359+
D3D_MIN_PRECISION_FLOAT_16 ==
1360+
static_cast<D3D_MIN_PRECISION>(D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_16),
1361+
MSG);
13621362
static_assert(D3D_MIN_PRECISION_FLOAT_2_8 ==
1363-
D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_2_8,
1364-
MSG);
1365-
static_assert(D3D_MIN_PRECISION_SINT_16 ==
1366-
D3D11_SB_OPERAND_MIN_PRECISION_SINT_16,
1367-
MSG);
1368-
static_assert(D3D_MIN_PRECISION_UINT_16 ==
1369-
D3D11_SB_OPERAND_MIN_PRECISION_UINT_16,
1363+
static_cast<D3D_MIN_PRECISION>(
1364+
D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_2_8),
13701365
MSG);
1366+
static_assert(
1367+
D3D_MIN_PRECISION_SINT_16 ==
1368+
static_cast<D3D_MIN_PRECISION>(D3D11_SB_OPERAND_MIN_PRECISION_SINT_16),
1369+
MSG);
1370+
static_assert(
1371+
D3D_MIN_PRECISION_UINT_16 ==
1372+
static_cast<D3D_MIN_PRECISION>(D3D11_SB_OPERAND_MIN_PRECISION_UINT_16),
1373+
MSG);
13711374

13721375
} // namespace hlsl

projects/dxilconv/tools/dxbc2dxil/dxbc2dxil.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,8 @@ void Converter::Run() {
243243

244244
UINT uDxilBlob;
245245
IFT(dxilReader.FindFirstPartKind(hlsl::DFCC_DXIL, &uDxilBlob));
246-
IFTBOOL(uDxilBlob != DXIL_CONTAINER_BLOB_NOT_FOUND, DXC_E_INCORRECT_DXBC);
246+
IFTBOOL(uDxilBlob != hlsl::DXIL_CONTAINER_BLOB_NOT_FOUND,
247+
DXC_E_INCORRECT_DXBC);
247248

248249
const char *pDxilBlob;
249250
UINT32 DxilBlobSize;

projects/dxilconv/unittests/DxilConvTests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ class DxilConvTest {
140140
return false;
141141
}
142142
std::string str = std::string(buffer, size);
143-
size_t pos;
144-
if ((pos = str.find_last_of("\\")) != std::string::npos) {
143+
size_t pos = str.find_last_of("\\");
144+
if (pos != std::string::npos) {
145145
str = str.substr(0, pos + 1);
146146
}
147147
binDir.assign(str);

0 commit comments

Comments
 (0)