Mercurial > hg > CbC > CbC_llvm
view llvm/test/TableGen/size.td @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: llvm-tblgen %s | FileCheck %s // XFAIL: vg_leak // Test !size of lists. // CHECK: --- Defs --- // CHECK: def A1 { // CHECK: int Val = 0; // CHECK: } // CHECK: def A2 { // CHECK: int Val = 3; // CHECK: } // CHECK: def B1 { // CHECK: int Val = 0; // CHECK: } // CHECK: def B2 { // CHECK: int Val = 2; // CHECK: } class A<list<int> L> { int Val = !size(L); } class B<list<string> L> { int Val = !size(L); } def A1 : A<[]>; def A2 : A<[1, 1, 2]>; def B1 : B<[]>; def B2 : B<["a", "b"]>; // Test !size of DAGs. // CHECK: def D0 { // CHECK: int Val = 0; // CHECK: } // CHECK: def D1 { // CHECK: int Val = 1; // CHECK: } // CHECK: def D2 { // CHECK: int Val = 2; // CHECK: } // CHECK: def D3 { // CHECK: int Val = 3; // CHECK: } // CHECK: def D4 { // CHECK: int Val = 4; // CHECK: } class D<dag D> { int Val = !size(D); } def op; def D0 : D<(op)>; def D1 : D<(op "string")>; def D2 : D<(op "string", 42)>; def D3 : D<(op "string", 42, (op "sub-dag"))>; def D4 : D<(op "string", 42, (op "sub-dag"), D0.Val)>; // Test !size of strings. // CHECK: def S0 { // CHECK: int Val = 0; // CHECK: } // CHECK: def S1 { // CHECK: int Val = 1; // CHECK: } // CHECK: def S2 { // CHECK: int Val = 2; // CHECK: } // CHECK: def S3 { // CHECK: int Val = 3; // CHECK: } // CHECK: def S4 { // CHECK: int Val = 29; // CHECK: } class S<string S> { int Val = !size(S); } def S0 : S<"">; def S1 : S<"a">; def S2 : S<"ab">; def S3 : S<"abc">; def S4 : S<"This is the end of the world!">;