diff options
author | Marek Polacek <polacek@redhat.com> | 2018-07-03 16:38:16 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2018-07-03 16:38:16 +0000 |
commit | 44b0c9aedb07df1c8c9c26f5a7146db38fee42e0 (patch) | |
tree | 32fee22d1ffecef7a59dd8bf161d848659bf28f3 | |
parent | 315aadc8642b72fc2d7172312a35e18074cca85b (diff) | |
download | gcc-44b0c9aedb07df1c8c9c26f5a7146db38fee42e0.zip gcc-44b0c9aedb07df1c8c9c26f5a7146db38fee42e0.tar.gz gcc-44b0c9aedb07df1c8c9c26f5a7146db38fee42e0.tar.bz2 |
re PR c++/86201 (ICE: Error reporting routines re-entered)
PR c++/86201
* typeck.c (cp_build_binary_op): Check c_inhibit_evaluation_warnings.
* g++.dg/diagnostic/pr86201.C: New test.
From-SVN: r262353
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/diagnostic/pr86201.C | 12 |
4 files changed, 23 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index de313ae..e4202e1 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2018-07-03 Marek Polacek <polacek@redhat.com> + + PR c++/86201 + * typeck.c (cp_build_binary_op): Check c_inhibit_evaluation_warnings. + 2018-07-03 Jason Merrill <jason@redhat.com> PR c++/86378 - functional cast in noexcept-specifier. diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 3a4f1cd..ea4ce96 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -4734,6 +4734,7 @@ cp_build_binary_op (location_t location, if (code0 == VECTOR_TYPE && code1 == VECTOR_TYPE) goto vector_compare; if ((complain & tf_warning) + && c_inhibit_evaluation_warnings == 0 && (FLOAT_TYPE_P (type0) || FLOAT_TYPE_P (type1))) warning (OPT_Wfloat_equal, "comparing floating point with == or != is unsafe"); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3330962..2afad58 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-07-03 Marek Polacek <polacek@redhat.com> + + PR c++/86201 + * g++.dg/diagnostic/pr86201.C: New test. + 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> PR tree-optimization/85694 diff --git a/gcc/testsuite/g++.dg/diagnostic/pr86201.C b/gcc/testsuite/g++.dg/diagnostic/pr86201.C new file mode 100644 index 0000000..e7019c2 --- /dev/null +++ b/gcc/testsuite/g++.dg/diagnostic/pr86201.C @@ -0,0 +1,12 @@ +// PR c++/86201 +// { dg-do compile { target c++11 } } + +template <class U, class V> +auto fn1 (V&& v) -> decltype(U(v)) +{ + return; // { dg-error "return-statement with no value" } +} +void fn2 () +{ + fn1<bool>(1.0); +} |