Explicitly instantiate TIntermTraverser::traverse(TIntermNode *).
authorJeff Gilbert <jgilbert@mozilla.com>
Sat, 27 Jul 2019 00:33:16 +0000 (17:33 -0700)
committerCarsten Schoenert <c.schoenert@t-online.de>
Sat, 16 Jan 2021 13:59:02 +0000 (13:59 +0000)
(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 <jgilbert@mozilla.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gbp-Pq: Topic porting-s390x
Gbp-Pq: Name Explicitly-instantiate-TIntermTraverser-traverse-TIntermN.patch

gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp

index c38baa12bffa8a9d3a3c854ea51f25ec76df3ccb..b587090714909e8c470cf6e8eca35da6b9df128d 100644 (file)
@@ -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);