// RUN: llvm-tblgen %s | FileCheck %s
// XFAIL: vg_leak

class Honorific<string t> {
  string honorific = t;
}

def Mr : Honorific<"Mr.">;
def Ms : Honorific<"Ms.">;
def Mrs : Honorific<"Mrs.">;
def TVAR : Honorific<"Bogus">;

class Name<string n, Honorific t> {
  string name = n;
  Honorific honorific = t;
}

class AName<string name, Honorific honorific> : 
  Name<!subst("FIRST", "John", !subst("LAST", "Smith", name)),
       !subst(TVAR, Mr, honorific)>;

def JohnSmith : AName<"FIRST LAST", TVAR>;
def JaneSmith : AName<"Jane LAST", Ms>;
def JohnSmithJones : AName<"FIRST LAST-Jones", Mr>;
def JimmyJohnson : AName<"Jimmy Johnson", Mr>;

// CHECK:      ------------- Classes -----------------
// CHECK-NEXT: class AName<string AName:name = ?, Honorific AName:honorific = ?> {
// CHECK-NEXT:   string name = !subst("FIRST", "John", !subst("LAST", "Smith", AName:name));
// CHECK-NEXT:   Honorific honorific = !subst(TVAR, Mr, AName:honorific);
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: class Honorific<string Honorific:t = ?> {
// CHECK-NEXT:   string honorific = Honorific:t;
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: class Name<string Name:n = ?, Honorific Name:t = ?> {
// CHECK-NEXT:   string name = Name:n;
// CHECK-NEXT:   Honorific honorific = Name:t;
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: ------------- Defs -----------------
// CHECK-NEXT: def JaneSmith {
// CHECK-NEXT:   string name = "Jane Smith";
// CHECK-NEXT:   Honorific honorific = Ms;
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: def JimmyJohnson {
// CHECK-NEXT:   string name = "Jimmy Johnson";
// CHECK-NEXT:   Honorific honorific = Mr;
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: def JohnSmith {
// CHECK-NEXT:   string name = "John Smith";
// CHECK-NEXT:   Honorific honorific = Mr;
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: def JohnSmithJones {
// CHECK-NEXT:   string name = "John Smith-Jones";
// CHECK-NEXT:   Honorific honorific = Mr;
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: def Mr 
// CHECK-NEXT:   string honorific = "Mr.";
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: def Mrs {
// CHECK-NEXT:   string honorific = "Mrs.";
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: def Ms {
// CHECK-NEXT:   string honorific = "Ms.";
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
// CHECK-NEXT: def TVAR {
// CHECK-NEXT:   string honorific = "Bogus";
// CHECK-NEXT:   string NAME = ?;
// CHECK-NEXT: }
