// RUN: llvm-tblgen %s | FileCheck %s
// XFAIL: vg_leak

//===----------------------------------------------------------------------===//
// Substitution of an int.
def X1;

class C1<int N> {
  dag d = (X1 N);
}

def VAL1 : C1<13>;

// CHECK: def VAL1 {
// CHECK-NEXT: dag d = (X1 13)


//===----------------------------------------------------------------------===//
// Substitution of a DAG.
def X2;

class yclass;
def Y2 : yclass;

class C2<yclass N> {
  dag d = (X2 N);
  dag e = (N X2);
}

def VAL2 : C2<Y2>;

// CHECK: def VAL2 {
// CHECK-NEXT: dag d = (X2 Y2)
// CHECK-NEXT: dag e = (Y2 X2)


//===----------------------------------------------------------------------===//
// Complex dag operator (F.TheOp).

class operator;
def somedef1 : operator;
def somedef2 : operator;

class foo<operator a> {
 operator TheOp = a;
}

class bar<foo F, operator a> {
  dag Dag1 = (somedef1 1);
  dag Dag2 = (a 2);
  dag Dag3 = (F.TheOp 2);
}

def foo1 : foo<somedef1>;
def foo2 : foo<somedef2>;

def VAL3 : bar<foo1, somedef1>;

// CHECK:     def VAL3 {	// bar
// CHECK-NEXT:  dag Dag1 = (somedef1 1);
// CHECK-NEXT:  dag Dag2 = (somedef1 2);
// CHECK-NEXT:  dag Dag3 = (somedef1 2);
// CHECK-NEXT: }


def VAL4 : bar<foo2, somedef2>;
// CHECK:      def VAL4 {
// CHECK-NEXT:  dag Dag1 = (somedef1 1);
// CHECK-NEXT:  dag Dag2 = (somedef2 2);
// CHECK-NEXT:  dag Dag3 = (somedef2 2);
// CHECK-NEXT: }
