backport: re PR c++/83713 (ICE in do_narrow at gcc/convert.c:474)
2018-01-09 Richard Biener <rguenther@suse.de> Backport from mainline 2018-01-08 Richard Biener <rguenther@suse.de> PR middle-end/83713 * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks. * g++.dg/torture/pr83713.C: New testcase. From-SVN: r256371
This commit is contained in:
parent
603ceb882d
commit
d8d1029d8e
|
@ -1,3 +1,11 @@
|
||||||
|
2018-01-09 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
2018-01-08 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR middle-end/83713
|
||||||
|
* convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
|
||||||
|
|
||||||
2018-01-08 Jim Wilson <jimw@sifive.com>
|
2018-01-08 Jim Wilson <jimw@sifive.com>
|
||||||
|
|
||||||
Backport from mainline
|
Backport from mainline
|
||||||
|
|
|
@ -461,8 +461,10 @@ do_narrow (location_t loc,
|
||||||
type in case the operation in outprec precision
|
type in case the operation in outprec precision
|
||||||
could overflow. Otherwise, we would introduce
|
could overflow. Otherwise, we would introduce
|
||||||
signed-overflow undefinedness. */
|
signed-overflow undefinedness. */
|
||||||
|| ((!TYPE_OVERFLOW_WRAPS (TREE_TYPE (arg0))
|
|| ((!(INTEGRAL_TYPE_P (TREE_TYPE (arg0))
|
||||||
|| !TYPE_OVERFLOW_WRAPS (TREE_TYPE (arg1)))
|
&& TYPE_OVERFLOW_WRAPS (TREE_TYPE (arg0)))
|
||||||
|
|| !(INTEGRAL_TYPE_P (TREE_TYPE (arg1))
|
||||||
|
&& TYPE_OVERFLOW_WRAPS (TREE_TYPE (arg1))))
|
||||||
&& ((TYPE_PRECISION (TREE_TYPE (arg0)) * 2u
|
&& ((TYPE_PRECISION (TREE_TYPE (arg0)) * 2u
|
||||||
> outprec)
|
> outprec)
|
||||||
|| (TYPE_PRECISION (TREE_TYPE (arg1)) * 2u
|
|| (TYPE_PRECISION (TREE_TYPE (arg1)) * 2u
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
2018-01-09 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
2018-01-08 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR middle-end/83713
|
||||||
|
* g++.dg/torture/pr83713.C: New testcase.
|
||||||
|
|
||||||
2018-01-08 Jim Wilson <jimw@sifive.com>
|
2018-01-08 Jim Wilson <jimw@sifive.com>
|
||||||
|
|
||||||
Backport from mainline
|
Backport from mainline
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
// { dg-do compile }
|
||||||
|
|
||||||
|
class a
|
||||||
|
{
|
||||||
|
char b;
|
||||||
|
void c ();
|
||||||
|
};
|
||||||
|
void
|
||||||
|
a::c ()
|
||||||
|
{
|
||||||
|
&b + ((long long) &b & 0);
|
||||||
|
}
|
Loading…
Reference in New Issue