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
This commit is contained in:
parent
6ab601efaa
commit
baf8d2ecd7
4 changed files with 43 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
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.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
23
gcc/testsuite/g++.dg/torture/pr90982.C
Normal file
23
gcc/testsuite/g++.dg/torture/pr90982.C
Normal file
|
@ -0,0 +1,23 @@
|
|||
// { 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
|
||||
|
|
Loading…
Add table
Reference in a new issue