Commit baf8d2ec by Richard Biener Committed by Richard Biener

re PR middle-end/90982 (ICE in make_decl_rtl, at varasm.c:1344)

2019-06-26  Richard Biener  <rguenther@suse.de>

	PR ipa/90982
	* tree-inline.c (remap_ssa_name): Copy SSA range info.

	* g++.dg/torture/pr90982.C: New testcase.

From-SVN: r272688
parent 6ab601ef
2019-06-26 Richard Biener <rguenther@suse.de>
PR ipa/90982
* tree-inline.c (remap_ssa_name): Copy SSA range info.
2019-06-26 Richard Biener <rguenther@suse.de>
* lto-streamer.h (lto_bitmap_alloc): Remove.
(lto_bitmap_free): Likewise.
* lto-streamer.c (lto_bitmap_alloc): Remove.
......
2019-06-26 Richard Biener <rguenther@suse.de>
PR ipa/90982
* g++.dg/torture/pr90982.C: New testcase.
2019-06-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67184
......
// { dg-do compile }
template <int n> struct S
{
long c[n];
void f (S d)
{
for (int i = 2;; i++)
c[i] &= d.c[i];
}
};
template <int m> struct T:S<m/64>
{
void operator &= (T d)
{ this -> f (d); }
};
void g (T<192> &d)
{
T<192> v;
d &= v;
}
......@@ -259,6 +259,11 @@ remap_ssa_name (tree name, copy_body_data *id)
struct ptr_info_def *new_pi = get_ptr_info (new_tree);
new_pi->pt = pi->pt;
}
/* So can range-info. */
if (!POINTER_TYPE_P (TREE_TYPE (name))
&& SSA_NAME_RANGE_INFO (name))
duplicate_ssa_name_range_info (new_tree, SSA_NAME_RANGE_TYPE (name),
SSA_NAME_RANGE_INFO (name));
return new_tree;
}
......@@ -292,6 +297,11 @@ remap_ssa_name (tree name, copy_body_data *id)
struct ptr_info_def *new_pi = get_ptr_info (new_tree);
new_pi->pt = pi->pt;
}
/* So can range-info. */
if (!POINTER_TYPE_P (TREE_TYPE (name))
&& SSA_NAME_RANGE_INFO (name))
duplicate_ssa_name_range_info (new_tree, SSA_NAME_RANGE_TYPE (name),
SSA_NAME_RANGE_INFO (name));
if (SSA_NAME_IS_DEFAULT_DEF (name))
{
/* By inlining function having uninitialized variable, we might
......
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