diff options
author | Jason Merrill <jason@redhat.com> | 2014-03-01 14:40:33 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2014-03-01 14:40:33 -0500 |
commit | fe96264ffc4bbbe1516f9c59cb2d4a689fbf5f24 (patch) | |
tree | aa70dbc27374eb7934316643b6f873ae29319d6b /gcc | |
parent | abb839ecacf4034ccb8376e4ab96e522287ff126 (diff) | |
download | gcc-fe96264ffc4bbbe1516f9c59cb2d4a689fbf5f24.zip gcc-fe96264ffc4bbbe1516f9c59cb2d4a689fbf5f24.tar.gz gcc-fe96264ffc4bbbe1516f9c59cb2d4a689fbf5f24.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/loop1.C | 9 |
3 files changed, 16 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 939f5e1..9e97f33 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2014-03-01 Jason Merrill <jason@redhat.com> + + PR c++/60379 + * semantics.c (begin_maybe_infinite_loop): Use + fold_non_dependent_expr_sfinae. + 2014-02-28 Jason Merrill <jason@redhat.com> PR c++/58845 diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 9c1c29d..eaeeb24 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 0000000..aa6d177 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/loop1.C @@ -0,0 +1,9 @@ +// PR c++/60379 + +template <int> struct A { + void m_fn1(int p1) { + int *a; + while (p1 && *static_cast<int *>(static_cast<void *>(a))) + ; + } +}; |