Skip to content

Commit 0390942

Browse files
authored
[ClangCL] Fix warning for rest part except clang. (microsoft#5705)
1. add noexcept for methods with __declspec(nothrow) 2. add override for override methods. 3. add const when cast const ptr for a const argument. 4. change 0 to 0u for immediate to avoid signed unsigned mismatch.
1 parent dd8a287 commit 0390942

File tree

4 files changed

+63
-54
lines changed

4 files changed

+63
-54
lines changed

include/llvm/Support/Program.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ struct ProcessInfo {
4444
#error "ProcessInfo is not defined for this platform!"
4545
#endif
4646

47+
enum : ProcessId { InvalidPid = 0 };
48+
4749
/// The process identifier.
4850
ProcessId Pid;
4951

lib/DxilCompression/miniz.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2128,7 +2128,9 @@ void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int
21282128
for (y = 0; y < h; ++y)
21292129
{
21302130
tdefl_compress_buffer(pComp, &z, 1, TDEFL_NO_FLUSH);
2131-
tdefl_compress_buffer(pComp, (mz_uint8 *)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH);
2131+
tdefl_compress_buffer(
2132+
pComp, (const mz_uint8 *)pImage + (flip ? (h - 1 - y) : y) * bpl,
2133+
bpl, TDEFL_NO_FLUSH);
21322134
}
21332135
if (tdefl_compress_buffer(pComp, NULL, 0, TDEFL_FINISH) != TDEFL_STATUS_DONE)
21342136
{

lib/HLSL/DxilContainerReflection.cpp

Lines changed: 55 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ class DxilShaderReflection : public DxilModuleReflection,
194194
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
195195
DXC_MICROCOM_TM_CTOR(DxilShaderReflection)
196196
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
197-
void **ppvObject) override {
197+
void **ppvObject) noexcept override {
198198
HRESULT hr = E_NOINTERFACE;
199199

200200
// There is non-standard handling of QueryInterface:
@@ -221,49 +221,50 @@ class DxilShaderReflection : public DxilModuleReflection,
221221
const DxilPartHeader *pRDATPart);
222222

223223
// ID3D12ShaderReflection
224-
STDMETHODIMP GetDesc(D3D12_SHADER_DESC *pDesc) override;
224+
STDMETHODIMP GetDesc(D3D12_SHADER_DESC *pDesc) noexcept override;
225225

226226
STDMETHODIMP_(ID3D12ShaderReflectionConstantBuffer *)
227-
GetConstantBufferByIndex(UINT Index) override;
227+
GetConstantBufferByIndex(UINT Index) noexcept override;
228228
STDMETHODIMP_(ID3D12ShaderReflectionConstantBuffer *)
229-
GetConstantBufferByName(LPCSTR Name) override;
229+
GetConstantBufferByName(LPCSTR Name) noexcept override;
230230

231231
STDMETHODIMP
232232
GetResourceBindingDesc(UINT ResourceIndex,
233-
D3D12_SHADER_INPUT_BIND_DESC *pDesc) override;
234-
235-
STDMETHODIMP
236-
GetInputParameterDesc(UINT ParameterIndex,
237-
D3D12_SIGNATURE_PARAMETER_DESC *pDesc) override;
238-
STDMETHODIMP
239-
GetOutputParameterDesc(UINT ParameterIndex,
240-
D3D12_SIGNATURE_PARAMETER_DESC *pDesc) override;
241-
STDMETHODIMP
242-
GetPatchConstantParameterDesc(UINT ParameterIndex,
243-
D3D12_SIGNATURE_PARAMETER_DESC *pDesc) override;
233+
D3D12_SHADER_INPUT_BIND_DESC *pDesc) noexcept override;
234+
235+
STDMETHODIMP GetInputParameterDesc(
236+
UINT ParameterIndex,
237+
D3D12_SIGNATURE_PARAMETER_DESC *pDesc) noexcept override;
238+
STDMETHODIMP GetOutputParameterDesc(
239+
UINT ParameterIndex,
240+
D3D12_SIGNATURE_PARAMETER_DESC *pDesc) noexcept override;
241+
STDMETHODIMP GetPatchConstantParameterDesc(
242+
UINT ParameterIndex,
243+
D3D12_SIGNATURE_PARAMETER_DESC *pDesc) noexcept override;
244244

245245
STDMETHODIMP_(ID3D12ShaderReflectionVariable *)
246-
GetVariableByName(LPCSTR Name) override;
246+
GetVariableByName(LPCSTR Name) noexcept override;
247247

248-
STDMETHODIMP
249-
GetResourceBindingDescByName(LPCSTR Name,
250-
D3D12_SHADER_INPUT_BIND_DESC *pDesc) override;
248+
STDMETHODIMP GetResourceBindingDescByName(
249+
LPCSTR Name, D3D12_SHADER_INPUT_BIND_DESC *pDesc) noexcept override;
251250

252-
STDMETHODIMP_(UINT) GetMovInstructionCount() override;
253-
STDMETHODIMP_(UINT) GetMovcInstructionCount() override;
254-
STDMETHODIMP_(UINT) GetConversionInstructionCount() override;
255-
STDMETHODIMP_(UINT) GetBitwiseInstructionCount() override;
251+
STDMETHODIMP_(UINT) GetMovInstructionCount(THIS) noexcept override;
252+
STDMETHODIMP_(UINT) GetMovcInstructionCount(THIS) noexcept override;
253+
STDMETHODIMP_(UINT) GetConversionInstructionCount(THIS) noexcept override;
254+
STDMETHODIMP_(UINT) GetBitwiseInstructionCount(THIS) noexcept override;
256255

257-
STDMETHODIMP_(D3D_PRIMITIVE) GetGSInputPrimitive() override;
258-
STDMETHODIMP_(BOOL) IsSampleFrequencyShader() override;
256+
STDMETHODIMP_(D3D_PRIMITIVE) GetGSInputPrimitive(THIS) noexcept override;
257+
STDMETHODIMP_(BOOL) IsSampleFrequencyShader(THIS) noexcept override;
259258

260-
STDMETHODIMP_(UINT) GetNumInterfaceSlots() override;
261-
STDMETHODIMP GetMinFeatureLevel(enum D3D_FEATURE_LEVEL *pLevel) override;
259+
STDMETHODIMP_(UINT) GetNumInterfaceSlots(THIS) noexcept override;
260+
STDMETHODIMP
261+
GetMinFeatureLevel(D3D_FEATURE_LEVEL *pLevel) noexcept override;
262262

263263
STDMETHODIMP_(UINT)
264-
GetThreadGroupSize(UINT *pSizeX, UINT *pSizeY, UINT *pSizeZ) override;
264+
GetThreadGroupSize(UINT *pSizeX, UINT *pSizeY,
265+
UINT *pSizeZ) noexcept override;
265266

266-
STDMETHODIMP_(UINT64) GetRequiresFlags() override;
267+
STDMETHODIMP_(UINT64) GetRequiresFlags(THIS) noexcept override;
267268
};
268269

269270
class CFunctionReflection;
@@ -287,7 +288,7 @@ class DxilLibraryReflection : public DxilModuleReflection,
287288
DXC_MICROCOM_TM_ADDREF_RELEASE_IMPL()
288289
DXC_MICROCOM_TM_CTOR(DxilLibraryReflection)
289290
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
290-
void **ppvObject) override {
291+
void **ppvObject) noexcept override {
291292
return DoBasicQueryInterface<ID3D12LibraryReflection>(this, iid, ppvObject);
292293
}
293294

@@ -2316,7 +2317,8 @@ HRESULT DxilShaderReflection::Load(const DxilProgramHeader *pProgramHeader,
23162317
CATCH_CPP_RETURN_HRESULT();
23172318
}
23182319

2319-
HRESULT DxilShaderReflection::GetDesc(D3D12_SHADER_DESC *pDesc) {
2320+
HRESULT
2321+
DxilShaderReflection::GetDesc(D3D12_SHADER_DESC *pDesc) noexcept {
23202322
if (nullptr == pDesc)
23212323
return E_POINTER;
23222324
memcpy(pDesc, &m_Desc, sizeof(D3D12_SHADER_DESC));
@@ -2536,7 +2538,7 @@ void DxilShaderReflection::InitDesc() {
25362538
}
25372539

25382540
ID3D12ShaderReflectionConstantBuffer *
2539-
DxilShaderReflection::GetConstantBufferByIndex(UINT Index) {
2541+
DxilShaderReflection::GetConstantBufferByIndex(UINT Index) noexcept {
25402542
return DxilModuleReflection::_GetConstantBufferByIndex(Index);
25412543
}
25422544
ID3D12ShaderReflectionConstantBuffer *
@@ -2548,7 +2550,7 @@ DxilModuleReflection::_GetConstantBufferByIndex(UINT Index) {
25482550
}
25492551

25502552
ID3D12ShaderReflectionConstantBuffer *
2551-
DxilShaderReflection::GetConstantBufferByName(LPCSTR Name) {
2553+
DxilShaderReflection::GetConstantBufferByName(LPCSTR Name) noexcept {
25522554
return DxilModuleReflection::_GetConstantBufferByName(Name);
25532555
}
25542556
ID3D12ShaderReflectionConstantBuffer *
@@ -2575,7 +2577,7 @@ DxilModuleReflection::_GetConstantBufferByName(LPCSTR Name) {
25752577
}
25762578

25772579
HRESULT DxilShaderReflection::GetResourceBindingDesc(
2578-
UINT ResourceIndex, D3D12_SHADER_INPUT_BIND_DESC *pDesc) {
2580+
UINT ResourceIndex, D3D12_SHADER_INPUT_BIND_DESC *pDesc) noexcept {
25792581
return DxilModuleReflection::_GetResourceBindingDesc(ResourceIndex, pDesc,
25802582
m_PublicAPI);
25812583
}
@@ -2593,7 +2595,7 @@ HRESULT DxilModuleReflection::_GetResourceBindingDesc(
25932595
}
25942596

25952597
HRESULT DxilShaderReflection::GetInputParameterDesc(
2596-
UINT ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC *pDesc) {
2598+
UINT ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC *pDesc) noexcept {
25972599
IFRBOOL(pDesc != nullptr, E_INVALIDARG);
25982600
IFRBOOL(ParameterIndex < m_InputSignature.size(), E_INVALIDARG);
25992601
if (m_PublicAPI != PublicAPI::D3D11_43)
@@ -2608,7 +2610,7 @@ HRESULT DxilShaderReflection::GetInputParameterDesc(
26082610
}
26092611

26102612
HRESULT DxilShaderReflection::GetOutputParameterDesc(
2611-
UINT ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC *pDesc) {
2613+
UINT ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC *pDesc) noexcept {
26122614
IFRBOOL(pDesc != nullptr, E_INVALIDARG);
26132615
IFRBOOL(ParameterIndex < m_OutputSignature.size(), E_INVALIDARG);
26142616
if (m_PublicAPI != PublicAPI::D3D11_43)
@@ -2622,8 +2624,9 @@ HRESULT DxilShaderReflection::GetOutputParameterDesc(
26222624
return S_OK;
26232625
}
26242626

2625-
HRESULT DxilShaderReflection::GetPatchConstantParameterDesc(
2626-
UINT ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC *pDesc) {
2627+
HRESULT
2628+
DxilShaderReflection::GetPatchConstantParameterDesc(
2629+
UINT ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC *pDesc) noexcept {
26272630
IFRBOOL(pDesc != nullptr, E_INVALIDARG);
26282631
IFRBOOL(ParameterIndex < m_PatchConstantSignature.size(), E_INVALIDARG);
26292632
if (m_PublicAPI != PublicAPI::D3D11_43)
@@ -2638,7 +2641,7 @@ HRESULT DxilShaderReflection::GetPatchConstantParameterDesc(
26382641
}
26392642

26402643
ID3D12ShaderReflectionVariable *
2641-
DxilShaderReflection::GetVariableByName(LPCSTR Name) {
2644+
DxilShaderReflection::GetVariableByName(LPCSTR Name) noexcept {
26422645
return DxilModuleReflection::_GetVariableByName(Name);
26432646
}
26442647
ID3D12ShaderReflectionVariable *
@@ -2657,7 +2660,7 @@ DxilModuleReflection::_GetVariableByName(LPCSTR Name) {
26572660
}
26582661

26592662
HRESULT DxilShaderReflection::GetResourceBindingDescByName(
2660-
LPCSTR Name, D3D12_SHADER_INPUT_BIND_DESC *pDesc) {
2663+
LPCSTR Name, D3D12_SHADER_INPUT_BIND_DESC *pDesc) noexcept {
26612664
return DxilModuleReflection::_GetResourceBindingDescByName(Name, pDesc,
26622665
m_PublicAPI);
26632666
}
@@ -2679,32 +2682,34 @@ HRESULT DxilModuleReflection::_GetResourceBindingDescByName(
26792682
return HRESULT_FROM_WIN32(ERROR_NOT_FOUND);
26802683
}
26812684

2682-
UINT DxilShaderReflection::GetMovInstructionCount() { return 0; }
2683-
UINT DxilShaderReflection::GetMovcInstructionCount() { return 0; }
2684-
UINT DxilShaderReflection::GetConversionInstructionCount() { return 0; }
2685-
UINT DxilShaderReflection::GetBitwiseInstructionCount() { return 0; }
2685+
UINT DxilShaderReflection::GetMovInstructionCount() noexcept { return 0; }
2686+
UINT DxilShaderReflection::GetMovcInstructionCount() noexcept { return 0; }
2687+
UINT DxilShaderReflection::GetConversionInstructionCount() noexcept {
2688+
return 0;
2689+
}
2690+
UINT DxilShaderReflection::GetBitwiseInstructionCount() noexcept { return 0; }
26862691

2687-
D3D_PRIMITIVE DxilShaderReflection::GetGSInputPrimitive() {
2692+
D3D_PRIMITIVE DxilShaderReflection::GetGSInputPrimitive() noexcept {
26882693
if (!m_pDxilModule->GetShaderModel()->IsGS())
26892694
return D3D_PRIMITIVE::D3D10_PRIMITIVE_UNDEFINED;
26902695
return (D3D_PRIMITIVE)m_pDxilModule->GetInputPrimitive();
26912696
}
26922697

2693-
BOOL DxilShaderReflection::IsSampleFrequencyShader() {
2698+
BOOL DxilShaderReflection::IsSampleFrequencyShader() noexcept {
26942699
// TODO: determine correct value
26952700
return FALSE;
26962701
}
26972702

2698-
UINT DxilShaderReflection::GetNumInterfaceSlots() { return 0; }
2703+
UINT DxilShaderReflection::GetNumInterfaceSlots() noexcept { return 0; }
26992704

27002705
HRESULT
2701-
DxilShaderReflection::GetMinFeatureLevel(enum D3D_FEATURE_LEVEL *pLevel) {
2706+
DxilShaderReflection::GetMinFeatureLevel(D3D_FEATURE_LEVEL *pLevel) noexcept {
27022707
IFR(AssignToOut(D3D_FEATURE_LEVEL_12_0, pLevel));
27032708
return S_OK;
27042709
}
27052710

27062711
UINT DxilShaderReflection::GetThreadGroupSize(UINT *pSizeX, UINT *pSizeY,
2707-
UINT *pSizeZ) {
2712+
UINT *pSizeZ) noexcept {
27082713
if (!m_pDxilModule->GetShaderModel()->IsCS() &&
27092714
!m_pDxilModule->GetShaderModel()->IsMS() &&
27102715
!m_pDxilModule->GetShaderModel()->IsAS()) {
@@ -2722,7 +2727,7 @@ UINT DxilShaderReflection::GetThreadGroupSize(UINT *pSizeX, UINT *pSizeY,
27222727
return x * y * z;
27232728
}
27242729

2725-
UINT64 DxilShaderReflection::GetRequiresFlags() {
2730+
UINT64 DxilShaderReflection::GetRequiresFlags() noexcept {
27262731
UINT64 result = m_pDxilModule->m_ShaderFlags.GetFeatureInfo();
27272732
// FeatureInfo flags are identical, with the exception of a collision between:
27282733
// SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X

unittests/Support/ProgramTest.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ TEST(ProgramTest, TestExecuteNoWait) {
188188
ProcessInfo PI1 = ExecuteNoWait(Executable, argv, &envp[0], nullptr, 0,
189189
&Error, &ExecutionFailed);
190190
ASSERT_FALSE(ExecutionFailed) << Error;
191-
ASSERT_NE(PI1.Pid, 0) << "Invalid process id";
191+
ASSERT_NE(PI1.Pid, ProcessInfo::InvalidPid) << "Invalid process id";
192192

193193
unsigned LoopCount = 0;
194194

@@ -207,7 +207,7 @@ TEST(ProgramTest, TestExecuteNoWait) {
207207
ProcessInfo PI2 = ExecuteNoWait(Executable, argv, &envp[0], nullptr, 0,
208208
&Error, &ExecutionFailed);
209209
ASSERT_FALSE(ExecutionFailed) << Error;
210-
ASSERT_NE(PI2.Pid, 0) << "Invalid process id";
210+
ASSERT_NE(PI2.Pid, ProcessInfo::InvalidPid) << "Invalid process id";
211211

212212
// Test that Wait() with SecondsToWait=0 performs a non-blocking wait. In this
213213
// cse, LoopCount should be greater than 1 (more than one increment occurs).
@@ -272,7 +272,7 @@ TEST(ProgramTest, TestExecuteNegative) {
272272
bool ExecutionFailed;
273273
ProcessInfo PI = ExecuteNoWait(Executable, argv, nullptr, nullptr, 0,
274274
&Error, &ExecutionFailed);
275-
ASSERT_EQ(PI.Pid, 0)
275+
ASSERT_EQ(PI.Pid, ProcessInfo::InvalidPid)
276276
<< "On error ExecuteNoWait should return an invalid ProcessInfo";
277277
ASSERT_TRUE(ExecutionFailed);
278278
ASSERT_FALSE(Error.empty());

0 commit comments

Comments
 (0)