Skip to content

Commit 00c5502

Browse files
author
joaosaffran
committed
adding some asserts
1 parent 1d85391 commit 00c5502

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

llvm/lib/Target/DirectX/DXILRootSignature.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "llvm/IR/Constants.h"
1919
#include "llvm/IR/Metadata.h"
2020
#include "llvm/IR/Module.h"
21+
#include <cassert>
2122

2223
using namespace llvm;
2324
using namespace llvm::dxil;
@@ -31,8 +32,7 @@ static bool parseRootFlags(ModuleRootSignature *MRS, MDNode *RootFlagNode) {
3132

3233
// Root Element validation, as specified:
3334
// https://github.com/llvm/wg-hlsl/blob/main/proposals/0002-root-signature-in-clang.md#validations-during-dxil-generation
34-
if ((Value & ~0x80000fff) != 0)
35-
return true;
35+
assert((Value & ~0x80000fff) != 0 && "Invalid flag for RootFlag Element");
3636

3737
MRS->Flags = Value;
3838
return false;
@@ -41,8 +41,7 @@ static bool parseRootFlags(ModuleRootSignature *MRS, MDNode *RootFlagNode) {
4141
static bool parseRootSignatureElement(ModuleRootSignature *MRS,
4242
MDNode *Element) {
4343
MDString *ElementText = cast<MDString>(Element->getOperand(0));
44-
45-
assert(ElementText != nullptr && "First preoperty of element is not ");
44+
assert(ElementText != nullptr && "First preoperty of element is not a string");
4645

4746
RootSignatureElementKind ElementKind =
4847
StringSwitch<RootSignatureElementKind>(ElementText->getString())
@@ -84,13 +83,14 @@ bool ModuleRootSignature::parse(int32_t Version, NamedMDNode *Root) {
8483
MDNode *Node = cast<MDNode>(Root->getOperand(Sid));
8584

8685
// Not sure what use this for...
87-
Metadata *Func = Node->getOperand(0).get();
86+
// Metadata *Func = Node->getOperand(0).get();
8887

89-
// This should be an if, for error handling
9088
MDNode *Elements = cast<MDNode>(Node->getOperand(1).get());
89+
assert(Elements && "Invalid Metadata type on root signature");
9190

9291
for (unsigned int Eid = 0; Eid < Elements->getNumOperands(); Eid++) {
9392
MDNode *Element = cast<MDNode>(Elements->getOperand(Eid));
93+
assert(Element && "Invalid Metadata type on root element");
9494

9595
HasError = HasError || parseRootSignatureElement(this, Element);
9696
}

0 commit comments

Comments
 (0)