re PR libgcj/57074 (libgcj regression on 32bit Power architecture)
PR libgcj/57074 * class.c (emit_symbol_table): Use array type of the right size for the_syms_decl and its DECL_INITIAL, instead of symbols_array_type. Set TREE_TYPE (the_syms_decl) to it. (emit_assertion_table): Use array type of the right size for table_decl and its DECL_INITIAL. From-SVN: r198631
This commit is contained in:
parent
aa06a9782f
commit
cb3f6a88f6
2 changed files with 20 additions and 3 deletions
|
@ -1,3 +1,12 @@
|
|||
2013-05-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR libgcj/57074
|
||||
* class.c (emit_symbol_table): Use array type of the
|
||||
right size for the_syms_decl and its DECL_INITIAL, instead
|
||||
of symbols_array_type. Set TREE_TYPE (the_syms_decl) to it.
|
||||
(emit_assertion_table): Use array type of the right size
|
||||
for table_decl and its DECL_INITIAL.
|
||||
|
||||
2013-04-15 Gerald Pfeifer <gerald@pfeifer.com>
|
||||
|
||||
* gcj.texi (Configure-time Options): Refer to GCC, not gcc.
|
||||
|
|
|
@ -2958,9 +2958,14 @@ emit_symbol_table (tree name, tree the_table,
|
|||
null_pointer_node);
|
||||
CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, null_symbol);
|
||||
|
||||
table = build_constructor (symbols_array_type, v);
|
||||
tree symbols_arr_type
|
||||
= build_prim_array_type (symbol_type, vec_safe_length (v));
|
||||
|
||||
table = build_constructor (symbols_arr_type, v);
|
||||
|
||||
/* Make it the initial value for otable_syms and emit the decl. */
|
||||
TREE_TYPE (the_syms_decl) = symbols_arr_type;
|
||||
relayout_decl (the_syms_decl);
|
||||
DECL_INITIAL (the_syms_decl) = table;
|
||||
DECL_ARTIFICIAL (the_syms_decl) = 1;
|
||||
DECL_IGNORED_P (the_syms_decl) = 1;
|
||||
|
@ -3109,12 +3114,15 @@ emit_assertion_table (tree klass)
|
|||
null_pointer_node);
|
||||
|
||||
CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, null_entry);
|
||||
|
||||
tree type
|
||||
= build_prim_array_type (assertion_entry_type, vec_safe_length (v));
|
||||
|
||||
ctor = build_constructor (assertion_table_type, v);
|
||||
ctor = build_constructor (type, v);
|
||||
|
||||
table_decl = build_decl (input_location,
|
||||
VAR_DECL, mangled_classname ("_type_assert_", klass),
|
||||
assertion_table_type);
|
||||
type);
|
||||
|
||||
TREE_STATIC (table_decl) = 1;
|
||||
TREE_READONLY (table_decl) = 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue