From f770fe55b10d76a1bf67952006089ad04f49151f Mon Sep 17 00:00:00 2001 From: Jeff Gilbert Date: Fri, 26 Jul 2019 17:33:16 -0700 Subject: [PATCH] Explicitly instantiate TIntermTraverser::traverse(TIntermNode *). (on behalf of RewriteAtomicFunctionExpressions) The compile will occasionally choose to inline all instances of this function, and therefore not export this entrypoint into the object file, leaving other TUs (RewriteAtomicFunctionExpressions) with missing link symbols. Bug: angleproject:3752 Change-Id: Ida778bcd897a85567680911a88aae88a3797aa93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721954 Commit-Queue: Jeff Gilbert Commit-Queue: Jamie Madill Reviewed-by: Jamie Madill Gbp-Pq: Topic porting-s390x Gbp-Pq: Name Explicitly-instantiate-TIntermTraverser-traverse-TIntermN.patch --- .../src/compiler/translator/tree_util/IntermTraverse.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp index c38baa12bf..b587090714 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp @@ -50,6 +50,10 @@ void TIntermTraverser::traverse(T *node) } } +// Instantiate template for RewriteAtomicFunctionExpressions, in case this gets inlined thus not +// exported from the TU. +template void TIntermTraverser::traverse(TIntermNode *); + void TIntermNode::traverse(TIntermTraverser *it) { it->traverse(this); -- 2.30.2