Mercurial > hg > CbC > CbC_llvm
view test/TableGen/2010-03-24-PrematureDefaults.td @ 52:c22698ecb2a9
modified CreateIdentifierInfo and create new function which was named 'CreateUniqueIdentifierInfo'.
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 15 Jan 2014 21:01:33 +0900 |
parents | 95c75e76d11b |
children |
line wrap: on
line source
// RUN: llvm-tblgen %s | FileCheck %s // XFAIL: vg_leak class A<int k, bits<2> x = 1> { int K = k; bits<2> Bits = x; } // CHECK: def a1 // CHECK: Bits = { 0, 1 } def a1 : A<12>; // CHECK: def a2 // CHECK: Bits = { 1, 0 } def a2 : A<13, 2>; // Here was the bug: X.Bits would get resolved to the default a1.Bits while // resolving the first template argument. When the second template argument // was processed, X would be set correctly, but Bits retained the default // value. class B<int k, A x = a1> { A X = x; bits<2> Bits = X.Bits; } // CHECK: def b1 // CHECK: Bits = { 0, 1 } def b1 : B<27>; // CHECK: def b2 // CHECK: Bits = { 1, 0 } def b2 : B<28, a2>; class C<A x = a1> { bits<2> Bits = x.Bits; } // CHECK: def c1 // CHECK: Bits = { 0, 1 } def c1 : C; // CHECK: def c2 // CHECK: Bits = { 1, 0 } def c2 : C<a2>;