From: Jason Merrill Date: Sat, 1 Mar 2014 19:40:33 +0000 (-0500) Subject: re PR c++/60379 (pugixml build failure caused by r207001) X-Git-Tag: releases/gcc-4.9.0~619 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe96264ffc4bbbe1516f9c59cb2d4a689fbf5f24;p=thirdparty%2Fgcc.git re PR c++/60379 (pugixml build failure caused by r207001) PR c++/60379 * semantics.c (begin_maybe_infinite_loop): Use fold_non_dependent_expr_sfinae. From-SVN: r208247 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 939f5e18f02b..9e97f33b7114 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2014-03-01 Jason Merrill + + PR c++/60379 + * semantics.c (begin_maybe_infinite_loop): Use + fold_non_dependent_expr_sfinae. + 2014-02-28 Jason Merrill PR c++/58845 diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 9c1c29d28e4e..eaeeb24b028f 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -503,7 +503,7 @@ begin_maybe_infinite_loop (tree cond) bool maybe_infinite = true; if (cond) { - cond = fold_non_dependent_expr (cond); + cond = fold_non_dependent_expr_sfinae (cond, tf_none); cond = maybe_constant_value (cond); maybe_infinite = integer_nonzerop (cond); } diff --git a/gcc/testsuite/g++.dg/template/loop1.C b/gcc/testsuite/g++.dg/template/loop1.C new file mode 100644 index 000000000000..aa6d177d589d --- /dev/null +++ b/gcc/testsuite/g++.dg/template/loop1.C @@ -0,0 +1,9 @@ +// PR c++/60379 + +template struct A { + void m_fn1(int p1) { + int *a; + while (p1 && *static_cast(static_cast(a))) + ; + } +};