Traverse function return attributes. The dependency graph needs to traverse function return attributes as they can contain expressions now. Bug: chromium:1377630 Change-Id: I338aa7ff1105baed93871ec44ca02285fabf407d Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/106845 Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Dan Sinclair <dsinclair@chromium.org> Auto-Submit: Dan Sinclair <dsinclair@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/resolver/dependency_graph.cc b/src/tint/resolver/dependency_graph.cc index b6001c1..5a21c55 100644 --- a/src/tint/resolver/dependency_graph.cc +++ b/src/tint/resolver/dependency_graph.cc
@@ -194,6 +194,7 @@ [&](const ast::Function* func) { Declare(func->symbol, func); TraverseAttributes(func->attributes); + TraverseAttributes(func->return_type_attributes); TraverseFunction(func); }, [&](const ast::Variable* var) {
diff --git a/src/tint/resolver/dependency_graph_test.cc b/src/tint/resolver/dependency_graph_test.cc index ae314b8..311c9cc 100644 --- a/src/tint/resolver/dependency_graph_test.cc +++ b/src/tint/resolver/dependency_graph_test.cc
@@ -1270,7 +1270,9 @@ Return(V), // Break(), // Discard(), // - }); // + }, + utils::Empty, // function attributes + utils::Vector{Location(V)}); // return attributes // Exercise type traversal GlobalVar(Sym(), ty.atomic(T)); GlobalVar(Sym(), ty.bool_());