1// RUN: llvm-tblgen -dump-json %s | %python %S/JSON-check.py %s 2 3def Simple {} 4// CHECK: data['Simple']['!locs'] == ['JSON-locs.td:3'] 5 6multiclass Multiclass1 { 7 def Instance1 {} 8 def Instance2 {} 9} 10 11defm DefM1 : Multiclass1; 12 13// CHECK: data['DefM1Instance1']['!locs'] == ['JSON-locs.td:7', 'JSON-locs.td:11'] 14// CHECK: data['DefM1Instance2']['!locs'] == ['JSON-locs.td:8', 'JSON-locs.td:11'] 15 16multiclass Multiclass2 { 17 def Instance3 {} 18 def Instance4 {} 19} 20 21defm DefM2 : Multiclass1, Multiclass2; 22// CHECK: data['DefM2Instance1']['!locs'] == ['JSON-locs.td:7', 'JSON-locs.td:21'] 23// CHECK: data['DefM2Instance2']['!locs'] == ['JSON-locs.td:8', 'JSON-locs.td:21'] 24// CHECK: data['DefM2Instance3']['!locs'] == ['JSON-locs.td:17', 'JSON-locs.td:21'] 25// CHECK: data['DefM2Instance4']['!locs'] == ['JSON-locs.td:18', 'JSON-locs.td:21'] 26 27multiclass Multiclass3 { 28 defm InnerDefM : Multiclass1; 29 def Instance5 {} 30} 31 32defm DefM3: Multiclass3; 33// CHECK: data['DefM3InnerDefMInstance1']['!locs'] == ['JSON-locs.td:7', 'JSON-locs.td:28', 'JSON-locs.td:32'] 34// CHECK: data['DefM3InnerDefMInstance2']['!locs'] == ['JSON-locs.td:8', 'JSON-locs.td:28', 'JSON-locs.td:32'] 35// CHECK: data['DefM3Instance5']['!locs'] == ['JSON-locs.td:29', 'JSON-locs.td:32'] 36 37class BaseClass {} 38class DerivedClass : BaseClass {} 39// Classes do not appear in the JSON, so do not get locations. 40// CHECK: 'BaseClass' not in data 41// CHECK: 'DerivedClass' not in data 42 43def ClassInstance : DerivedClass {} 44// CHECK: data['ClassInstance']['!locs'] == ['JSON-locs.td:43'] 45