File tree 2 files changed +12
-2
lines changed
2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -326,7 +326,7 @@ class ArgI8<DXILConstant value_> : Arg {
326
326
let is_i8 = 1;
327
327
}
328
328
329
- class IntrinsicSelect<Intrinsic intrinsic_, list<Arg> args_=? > {
329
+ class IntrinsicSelect<Intrinsic intrinsic_, list<Arg> args_> {
330
330
Intrinsic intrinsic = intrinsic_;
331
331
list<Arg> args = args_;
332
332
}
Original file line number Diff line number Diff line change @@ -208,13 +208,23 @@ DXILOperationDesc::DXILOperationDesc(const Record *R) {
208
208
bool IsI8 = Arg->getValueAsBit (" is_i8" );
209
209
bool IsI32 = Arg->getValueAsBit (" is_i32" );
210
210
int Index = Arg->getValueAsInt (" index" );
211
- const Record *ValueRec = Arg->getValueAsDef (" value" );
211
+ const Record *ValueRec = Arg->getValueAsOptionalDef (" value" );
212
212
213
213
DXILArgSelect ArgSelect;
214
214
if (IsI8) {
215
+ if (!ValueRec) {
216
+ PrintFatalError (R, Twine (" 'value' must be defined for i8 "
217
+ " ArgSelect for DXIL operation - " ) +
218
+ OpName);
219
+ }
215
220
ArgSelect.Type = DXILArgSelect::Type::I8;
216
221
ArgSelect.Value = ValueRec->getValueAsInt (" value" );
217
222
} else if (IsI32) {
223
+ if (!ValueRec) {
224
+ PrintFatalError (R, Twine (" 'value' must be defined for i32 "
225
+ " ArgSelect for DXIL operation - " ) +
226
+ OpName);
227
+ }
218
228
ArgSelect.Type = DXILArgSelect::Type::I32;
219
229
ArgSelect.Value = ValueRec->getValueAsInt (" value" );
220
230
} else {
You can’t perform that action at this time.
0 commit comments