mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
[tablegen] !strconcat accepts more than two arguments but this wasn't documented or tested.
Summary: * Updated the documentation * Added a test for >2 arguments * Added a check for the lexical concatenation * Made the existing test a bit stricter. Reviewers: t.p.northover Reviewed By: t.p.northover Subscribers: t.p.northover, llvm-commits Differential Revision: http://reviews.llvm.org/D3485 llvm-svn: 207865
This commit is contained in:
parent
0e9ae87185
commit
dd6b082c7d
@ -160,8 +160,10 @@ supported include:
|
||||
remaining elements in the list may be arbitrary other values, including
|
||||
nested ```dag``' values.
|
||||
|
||||
``!strconcat(a, b)``
|
||||
``!strconcat(a, b, ...)``
|
||||
A string value that is the result of concatenating the 'a' and 'b' strings.
|
||||
More than two arguments are accepted with the result being the concatenation
|
||||
of all the strings given.
|
||||
|
||||
``str1#str2``
|
||||
"#" (paste) is a shorthand for !strconcat. It may concatenate things that
|
||||
|
@ -1,9 +1,21 @@
|
||||
// RUN: llvm-tblgen %s | FileCheck %s
|
||||
|
||||
// CHECK: fufoo
|
||||
// CHECK: class Y<string Y:S = ?> {
|
||||
// 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 S> {
|
||||
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";
|
||||
|
Loading…
x
Reference in New Issue
Block a user