Fix user iteration (#404)

diff --git a/lib/MultiVersionUBOFunctionsPass.cpp b/lib/MultiVersionUBOFunctionsPass.cpp
index 40bab13..ee26f32 100644
--- a/lib/MultiVersionUBOFunctionsPass.cpp
+++ b/lib/MultiVersionUBOFunctionsPass.cpp
@@ -103,7 +103,8 @@
 
     bool local_changed = false;
     size_t count = 0;
-    for (auto user : fn->users()) {
+    SmallVector<User *, 8> users(fn->users());
+    for (auto user : users) {
       if (auto call = dyn_cast<CallInst>(user)) {
         std::vector<ResourceInfo> resources;
         if (AnalyzeCall(fn, call, &resources)) {