Mercurial > hg > CbC > CbC_llvm
view llvm/test/TableGen/2010-03-24-PrematureDefaults.td @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | c4bab56944e8 |
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>;