File tree 1 file changed +4
-1
lines changed
1 file changed +4
-1
lines changed Original file line number Diff line number Diff line change @@ -145,6 +145,8 @@ struct primary_expression_node
145
145
std::unique_ptr<inspect_expression_node>,
146
146
std::unique_ptr<literal_node>
147
147
> expr;
148
+ // Cache to work around <https://github.com/llvm/llvm-project/issues/73336>.
149
+ bool expression_list_is_fold_expression = false ;
148
150
149
151
150
152
// API
@@ -1556,7 +1558,7 @@ auto primary_expression_node::is_fold_expression() const
1556
1558
break ;case identifier:
1557
1559
return *std::get<identifier>(expr) == " ..." ;
1558
1560
break ;case expression_list:
1559
- return std::get<expression_list>(expr)-> is_fold_expression () ;
1561
+ return expression_list_is_fold_expression ;
1560
1562
break ;case id_expression:
1561
1563
return std::get<id_expression>(expr)->is_fold_expression ();
1562
1564
break ;default : ; // the others can't contain folds
@@ -5467,6 +5469,7 @@ class parser
5467
5469
) {
5468
5470
expr_list->inside_initializer = false ;
5469
5471
}
5472
+ n->expression_list_is_fold_expression = expr_list->is_fold_expression ();
5470
5473
n->expr = std::move (expr_list);
5471
5474
return n;
5472
5475
}
You can’t perform that action at this time.
0 commit comments