diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-13 01:45:35 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-13 01:45:35 +0000 |
commit | 46518bf201fac97504ef5c9aae880d908f89ff79 (patch) | |
tree | d3a49132e8246b9fe0b8818a628270a745927d80 /gcc/tree.c | |
parent | fc7657e881366a7916956c40bf8c14ed6e91fda3 (diff) | |
download | gcc-46518bf201fac97504ef5c9aae880d908f89ff79.tar.gz |
* tree.c (build_constructor): New function.
* tree.h: Prototype it.
* c-typeck.c (build_c_cast, pop_init_level)
* profile.c (build_function_info_value, build_gcov_info_value)
(create_profiler):
Use build_constructor.
* builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
* objc/objc-act.c (build_constructor):
Rename objc_build_constructor. Use build_constructor.
(build_objc_string_object, objc_add_static_instance)
(init_def_list, init_objc_symtab, init_module_descriptor)
(generate_static_references, build_selector_translation_table)
(build_descriptor_table_initializer, generate_descriptor_table)
(build_protocol_initializer, build_ivar_list_initializer)
(generate_ivars_list, build_dispatch_table_initializer)
(generate_dispatch_table, generate_protocol_list)
(build_category_initializer, build_shared_structure_initializer):
Update to match.
ada:
* gigi.h, utils2.c (build_constructor):
Rename gnat_build_constructor. Use build_constructor.
* decl.c (gnat_to_gnu_entity)
* trans.c (tree_transform, pos_to_constructor, extract_values)
* ada/utils.c (build_template, convert_to_fat_pointer, convert)
(unchecked_convert)
* ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
(fill_vms_descriptor):
Update to match.
cp:
* class.c (initialize_array)
* decl.c (reshape_init)
* decl2.c (build_expr_from_tree)
* init.c (build_zero_init)
* pt.c (tsubst_copy, tsubst_copy_and_build)
* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer)
(ptm_initializer, class_initializer, get_pseudo_ti_init)
* semantics.c (finish_compound_literal)
* typeck.c (build_ptrmemfunc1)
* typeck2.c (store_init_value, process_init_constructor)
(build_functional_cast): Use build_constructor.
f:
* com.c (ffecom_build_complex_constant_, ffecom_expr_)
(ffecom_init_zero_, ffecom_transform_namelist_, ffecom_vardesc_)
(ffecom_vardesc_array_, ffecom_vardesc_dims_, ffecom_2)
* ste.c (ffeste_io_ialist_, ffeste_io_cilist_, ffeste_io_cllist_)
(ffeste_io_icilist_, ffeste_io_inlist_, ffeste_io_olist_):
Use build_constructor.
java:
* class.c (make_field_value, make_method_value, get_dispatch_table)
(make_class_data, emit_offset_symbol_table)
* constants.c (build_constants_constructor)
* java-tree.h (START_RECORD_CONSTRUCTOR)
* parse.y (maybe_build_array_element_wfl):
Use build_constructor.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65539 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/tree.c b/gcc/tree.c index fc4630f62f4..0570261d60d 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -468,6 +468,29 @@ build_vector (type, vals) return v; } +/* Return a new CONSTRUCTOR node whose type is TYPE and whose values + are in a list pointed to by VALS. */ +tree +build_constructor (type, vals) + tree type, vals; +{ + tree c = make_node (CONSTRUCTOR); + TREE_TYPE (c) = type; + CONSTRUCTOR_ELTS (c) = vals; + + /* ??? May not be necessary. Mirrors what build does. */ + if (vals) + { + TREE_SIDE_EFFECTS (c) = TREE_SIDE_EFFECTS (vals); + TREE_READONLY (c) = TREE_READONLY (vals); + TREE_CONSTANT (c) = TREE_CONSTANT (vals); + } + else + TREE_CONSTANT (c) = 0; /* safe side */ + + return c; +} + /* Return a new REAL_CST node whose type is TYPE and value is D. */ tree |