blob: dc8b4e559f190490b5d2a877b7aa7433ec9ba8db [file] [log] [blame]
Aleksandar Beserminji3be0f862018-01-08 16:25:40 +00001// RUN: not llvm-tblgen -gen-instr-info -I %p/../../include %s 2>&1 | FileCheck %s
2
3// This test verifies that TableGen is displaying an error when mapped instruction
4// does not contain a field listed under RowFields.
5
6include "llvm/Target/Target.td"
7
8class SimpleReg<string n> : Register<n> {
9 let Namespace = "Simple";
10}
11def R0 : SimpleReg<"r0">;
12def SimpleRegClass : RegisterClass<"Simple",[i32],0,(add R0)>;
13def SimpleInstrInfo : InstrInfo;
14
15def SimpleTarget : Target {
16 let InstructionSet = SimpleInstrInfo;
17}
18
19class SimpleRel;
20
21def REL_DEF : InstrMapping {
22 let FilterClass = "SimpleRel";
23 let RowFields = ["BaseName"];
24 let ColFields = ["Col"];
25 let KeyCol = ["KeyCol"];
26 let ValueCols = [["ValCol"]];
27}
28
29class INSTR_DEF : Instruction {
30 let Namespace = "Simple";
31 let OutOperandList = (outs);
32 let InOperandList = (ins);
33 string Basename = "";
34 string Col = "";
35}
36
37def SimpleInstr : SimpleRel, INSTR_DEF;
38
39// CHECK: error: No value "BaseName" found in "SimpleInstr" instruction description.
40// CHECK: def SimpleInstr : SimpleRel, INSTR_DEF;