aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-08-21 19:52:33 +0000
committerSam Clegg <sbc@chromium.org>2019-08-21 19:52:33 +0000
commitdde8a25a4bd0b8e194ebb9277d656f6069c26449 (patch)
tree9f2030d631807245d5a55f04deab63b7946a41c0 /llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
parent3f59bfd5be39687cd3a853aaffe8ef2d84ab2ff8 (diff)
downloadllvm-dde8a25a4bd0b8e194ebb9277d656f6069c26449.zip
llvm-dde8a25a4bd0b8e194ebb9277d656f6069c26449.tar.gz
llvm-dde8a25a4bd0b8e194ebb9277d656f6069c26449.tar.bz2
[WebAssembly] Handle aliases in WebAssemblyFixFunctionBitcasts
Fixes: https://github.com/emscripten-core/emscripten/issues/8770 Differential Revision: https://reviews.llvm.org/D66508 llvm-svn: 369566
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
index b7fc654..6b1bbd7 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
@@ -70,6 +70,8 @@ static void findUses(Value *V, Function &F,
for (Use &U : V->uses()) {
if (auto *BC = dyn_cast<BitCastOperator>(U.getUser()))
findUses(BC, F, Uses, ConstantBCs);
+ else if (auto *A = dyn_cast<GlobalAlias>(U.getUser()))
+ findUses(A, F, Uses, ConstantBCs);
else if (U.get()->getType() != F.getType()) {
CallSite CS(U.getUser());
if (!CS)