diff options
author | Jason Merrill <jason@redhat.com> | 2013-05-09 12:43:27 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2013-05-09 12:43:27 -0400 |
commit | a3409c0279cf6f6f230c5d163472686867e2f89d (patch) | |
tree | bb9b7882752a4c7fd7ccc7af624ce9bf10c4bc5f /gcc | |
parent | 66e6b9905b97c53e21db1de2ac3fbb0d46138a57 (diff) | |
download | gcc-a3409c0279cf6f6f230c5d163472686867e2f89d.zip gcc-a3409c0279cf6f6f230c5d163472686867e2f89d.tar.gz gcc-a3409c0279cf6f6f230c5d163472686867e2f89d.tar.bz2 |
tree.c (build_constructor_va): New.
* tree.c (build_constructor_va): New.
* tree.h: Declare it.
From-SVN: r198744
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree.c | 21 | ||||
-rw-r--r-- | gcc/tree.h | 1 |
3 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 34c83ac..e163165 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-05-09 Jason Merrill <jason@redhat.com> + + * tree.c (build_constructor_va): New. + * tree.h: Declare it. + 2013-05-09 Martin Jambor <mjambor@suse.cz> PR lto/57084 @@ -1467,6 +1467,27 @@ build_constructor_from_list (tree type, tree vals) return build_constructor (type, v); } +/* Return a new CONSTRUCTOR node whose type is TYPE. NELTS is the number + of elements, provided as index/value pairs. */ + +tree +build_constructor_va (tree type, int nelts, ...) +{ + vec<constructor_elt, va_gc> *v = NULL; + va_list p; + + va_start (p, nelts); + vec_alloc (v, nelts); + while (nelts--) + { + tree index = va_arg (p, tree); + tree value = va_arg (p, tree); + CONSTRUCTOR_APPEND_ELT (v, index, value); + } + va_end (p); + return build_constructor (type, v); +} + /* Return a new FIXED_CST node whose type is TYPE and value is F. */ tree @@ -4763,6 +4763,7 @@ extern tree build_vector_from_val (tree, tree); extern tree build_constructor (tree, vec<constructor_elt, va_gc> *); extern tree build_constructor_single (tree, tree, tree); extern tree build_constructor_from_list (tree, tree); +extern tree build_constructor_va (tree, int, ...); extern tree build_real_from_int_cst (tree, const_tree); extern tree build_complex (tree, tree, tree); extern tree build_one_cst (tree); |