PR c++/60223 - ICE with T{} in non-deduced context.
* pt.c (unify): Allow COMPOUND_LITERAL_P in a non-deduced context.
+ 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-29 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
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)
--- /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{ }) { }) {
+ }
+};