Commit abcc192b by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/54630 (GCC 4.8 --enable-languages=c build fails: Undefined…

re PR middle-end/54630 (GCC 4.8 --enable-languages=c build fails: Undefined symbols: ___cxa_guard_acquire and ___cxa_guard_release)

	PR middle-end/54630
	* tree-ssa-coalesce.c (coalesce_ssa_name): Remove static
	keyword from ssa_name_hash var.

	* class.c (fixed_type_or_null_ref_ht): New variable.
	(fixed_type_or_null): Use it instead of local static ht.

From-SVN: r193620
parent c293d490
2012-11-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/54630
* tree-ssa-coalesce.c (coalesce_ssa_name): Remove static
keyword from ssa_name_hash var.
2012-11-19 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Kirill Yukhin <kirill.yukhin@intel.com>
Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2012-11-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/54630
* class.c (fixed_type_or_null_ref_ht): New variable.
(fixed_type_or_null): Use it instead of local static ht.
2012-11-17 Diego Novillo <dnovillo@google.com>
Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
......
......@@ -6568,6 +6568,9 @@ finish_struct (tree t, tree attributes)
return t;
}
/* Hash table to avoid endless recursion when handling references. */
static hash_table <pointer_hash <tree_node> > fixed_type_or_null_ref_ht;
/* Return the dynamic type of INSTANCE, if known.
Used to determine whether the virtual function table is needed
or not.
......@@ -6683,9 +6686,8 @@ fixed_type_or_null (tree instance, int *nonnull, int *cdtorp)
else if (TREE_CODE (TREE_TYPE (instance)) == REFERENCE_TYPE)
{
/* We only need one hash table because it is always left empty. */
static hash_table <pointer_hash <tree_node> > ht;
if (!ht.is_created ())
ht.create (37);
if (!fixed_type_or_null_ref_ht.is_created ())
fixed_type_or_null_ref_ht.create (37);
/* Reference variables should be references to objects. */
if (nonnull)
......@@ -6697,15 +6699,15 @@ fixed_type_or_null (tree instance, int *nonnull, int *cdtorp)
if (TREE_CODE (instance) == VAR_DECL
&& DECL_INITIAL (instance)
&& !type_dependent_expression_p_push (DECL_INITIAL (instance))
&& !ht.find (instance))
&& !fixed_type_or_null_ref_ht.find (instance))
{
tree type;
tree_node **slot;
slot = ht.find_slot (instance, INSERT);
slot = fixed_type_or_null_ref_ht.find_slot (instance, INSERT);
*slot = instance;
type = RECUR (DECL_INITIAL (instance));
ht.remove_elt (instance);
fixed_type_or_null_ref_ht.remove_elt (instance);
return type;
}
......
2012-11-19 Tom de Vries <tom@codesourcery.com>
PR rtl-optimization/55315
* gcc.target/mips/pr55315.c: New test.
2012-11-17 Jakub Jelinek <jakub@redhat.com>
......
/* Coalesce SSA_NAMES together for the out-of-ssa pass.
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Contributed by Andrew MacLeod <amacleod@redhat.com>
......@@ -1292,7 +1292,6 @@ coalesce_ssa_name (void)
bitmap used_in_copies = BITMAP_ALLOC (NULL);
var_map map;
unsigned int i;
static hash_table <ssa_name_var_hash> ssa_name_hash;
cl = create_coalesce_list ();
map = create_outofssa_var_map (cl, used_in_copies);
......@@ -1301,6 +1300,8 @@ coalesce_ssa_name (void)
so debug info remains undisturbed. */
if (!optimize)
{
hash_table <ssa_name_var_hash> ssa_name_hash;
ssa_name_hash.create (10);
for (i = 1; i < num_ssa_names; i++)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment