From dce4a407a24b04eebc6a376f8e62b41aaa7b071f Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Thu, 29 May 2014 02:49:00 -0700 Subject: Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f --- test/TableGen/GeneralList.td | 1 - test/TableGen/lisp.td | 1 - test/TableGen/listconcat.td | 18 ++++++++++++++++++ test/TableGen/strconcat.td | 14 +++++++++++++- 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 test/TableGen/listconcat.td (limited to 'test/TableGen') diff --git a/test/TableGen/GeneralList.td b/test/TableGen/GeneralList.td index 9e0c7df..17cc9a5 100644 --- a/test/TableGen/GeneralList.td +++ b/test/TableGen/GeneralList.td @@ -1,5 +1,4 @@ // RUN: llvm-tblgen %s -// XFAIL: vg_leak // // Test to make sure that lists work with any data-type diff --git a/test/TableGen/lisp.td b/test/TableGen/lisp.td index 9e58605..d753fbd 100644 --- a/test/TableGen/lisp.td +++ b/test/TableGen/lisp.td @@ -1,5 +1,4 @@ // RUN: llvm-tblgen %s -// XFAIL: vg_leak // CHECK: def One { // CHECK-NEXT: list names = ["Jeffrey Sinclair"]; diff --git a/test/TableGen/listconcat.td b/test/TableGen/listconcat.td new file mode 100644 index 0000000..870e649 --- /dev/null +++ b/test/TableGen/listconcat.td @@ -0,0 +1,18 @@ +// RUN: llvm-tblgen %s | FileCheck %s + +// CHECK: class Y Y:S = ?> { +// CHECK: list T1 = !listconcat(Y:S, ["foo"]); +// CHECK: list T2 = !listconcat(Y:S, !listconcat(["foo"], !listconcat(Y:S, ["bar", "baz"]))); +// CHECK: } + +// CHECK: def Z { +// CHECK: list T1 = ["fu", "foo"]; +// CHECK: list T2 = ["fu", "foo", "fu", "bar", "baz"]; +// CHECK: } + +class Y S> { + list T1 = !listconcat(S, ["foo"]); + list T2 = !listconcat(S, ["foo"], S, ["bar", "baz"]); +} + +def Z : Y<["fu"]>; diff --git a/test/TableGen/strconcat.td b/test/TableGen/strconcat.td index dfb1a94..f5d7512 100644 --- a/test/TableGen/strconcat.td +++ b/test/TableGen/strconcat.td @@ -1,9 +1,21 @@ // RUN: llvm-tblgen %s | FileCheck %s -// CHECK: fufoo +// CHECK: class Y { +// CHECK: string T = !strconcat(Y:S, "foo"); +// CHECK: string T2 = !strconcat(Y:S, !strconcat("foo", !strconcat(Y:S, "bar"))); +// CHECK: string S = "foobar"; +// CHECK: } + +// CHECK: def Z { +// CHECK: string T = "fufoo"; +// CHECK: string T2 = "fufoofubar"; +// CHECK: string S = "foobar"; +// CHECK: } class Y { string T = !strconcat(S, "foo"); + // More than two arguments is equivalent to nested calls + string T2 = !strconcat(S, "foo", S, "bar"); // String values concatenate lexically, as in C. string S = "foo" "bar"; -- cgit v1.1