• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: llvm-tblgen %s | grep {zing = 4} | count 28
2// XFAIL: vg_leak
3
4class C1<int A, string B> {
5  int bar = A;
6  string thestr = B;
7  int zing;
8}
9
10def T : C1<4, "blah">;
11
12multiclass t1<int a1> {
13  def S1 : C1<a1, "foo"> {
14    int foo = 4;
15    let bar = 1;
16  }
17  def S2 : C1<a1, "bar">;
18}
19
20multiclass t2<int a2> {
21  def S3 : C1<a2, "foo"> {
22    int foo = 4;
23    let bar = 1;
24  }
25  def S4 : C1<a2, "bar">;
26}
27
28multiclass s1<int as1, int bs1> : t1<as1> {
29  def S5 : C1<bs1, "moo"> {
30    int moo = 3;
31    let bar = 1;
32  }
33  def S6 : C1<bs1, "baz">;
34}
35
36multiclass s2<int as2> : t1<as2>, t2<as2>;
37
38multiclass s3<int as3, int bs3> : t1<as3>, t2<as3> {
39  def S7 : C1<bs3, "moo"> {
40    int moo = 3;
41    let bar = 1;
42  }
43  def S8 : C1<bs3, "baz">;
44}
45
46let zing = 4 in
47defm FOO1 : s1<42, 24>;
48
49let zing = 4 in
50defm FOO2 : s2<99>;
51
52let zing = 4 in
53defm FOO3 : s3<84, 48>;
54
55def T4 : C1<6, "foo">;
56
57let zing = 4 in
58  defm BAZ1 : s1<3, 4>;
59
60let zing = 4 in
61  defm BAZ2 : s2<5>;
62
63let zing = 4 in
64  defm BAZ3 : s3<6, 7>;
65
66