+2019-06-21 Marek Polacek <polacek@redhat.com>
+
+ PR c++/90490 - fix decltype issues in noexcept-specifier.
+ * except.c (build_noexcept_spec): Call
+ instantiate_non_dependent_expr_sfinae before
+ build_converted_constant_expr instead of calling
+ instantiate_non_dependent_expr after it. Add
+ processing_template_decl_sentinel.
+
2019-06-21 Jakub Jelinek <jakub@redhat.com>
PR c++/90950
if (TREE_CODE (expr) != DEFERRED_NOEXCEPT
&& !value_dependent_expression_p (expr))
{
+ expr = instantiate_non_dependent_expr_sfinae (expr, complain);
+ /* Don't let convert_like_real create more template codes. */
+ processing_template_decl_sentinel s;
expr = build_converted_constant_bool_expr (expr, complain);
- expr = instantiate_non_dependent_expr (expr);
expr = cxx_constant_value (expr);
}
if (TREE_CODE (expr) == INTEGER_CST)
+2019-06-21 Marek Polacek <polacek@redhat.com>
+
+ PR c++/90490 - fix decltype issues in noexcept-specifier.
+ * g++.dg/cpp0x/noexcept43.C: New test.
+ * g++.dg/cpp0x/noexcept44.C: New test.
+
2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
PR c++/90875 - added -Wswitch-outside-range option
2019-06-21 Jeff Law <law@redhat.com>
- PR tree-optimization/90949
+ PR tree-optimization/90949
* gcc.c-torture/execute/pr90949.c: New test.
2019-06-21 Marek Polacek <polacek@redhat.com>
--- /dev/null
+// PR c++/90490
+// { dg-do compile { target c++11 } }
+
+struct R { constexpr operator bool() { return false;} };
+
+template <typename>
+struct S {
+ void g() noexcept(decltype(R{ }) { }) {
+ }
+};
--- /dev/null
+// PR c++/90490
+// { dg-do compile { target c++11 } }
+
+template <typename>
+struct S {
+ void g() noexcept(decltype(int{ }) { }) {
+ }
+};