expr = maybe_undo_parenthesized_ref (expr);
expr = tree_strip_any_location_wrapper (expr);
+ if (expr == error_mark_node)
+ return false;
+
if (is_overloaded_fn (expr) == 1
&& !mark_used (expr, complain)
&& !(complain & tf_error))
bool
mark_used (tree decl, tsubst_flags_t complain /* = tf_warning_or_error */)
{
+ if (decl == error_mark_node)
+ return false;
+
/* If we're just testing conversions or resolving overloads, we
don't want any permanent effects like forcing functions to be
output or instantiating templates. */
template for (int x : { 1, }) // { dg-warning "'template for' only available with" "" { target c++23_down } }
;
for (int x : { , }) // { dg-error "expected primary-expression before ',' token" }
- ; // { dg-error "unable to deduce" "" { target *-*-* } .-1 }
+ ;
template for (int x : { , }) // { dg-warning "'template for' only available with" "" { target c++23_down } }
; // { dg-error "expected primary-expression before ',' token" "" { target *-*-* } .-1 }
}