Update LLVM (#859)

Contributes to #816

* Disable opaque pointers temporarily
* Update tests that had no pointers to avoid opaque pointers
diff --git a/lib/Compiler.cpp b/lib/Compiler.cpp
index 1b6cbe7..ff81dd8 100644
--- a/lib/Compiler.cpp
+++ b/lib/Compiler.cpp
@@ -834,21 +834,26 @@
   // ParseCommandLineOptions with the specific options.
   bool has_pre = false;
   bool has_load_pre = false;
+  bool has_opaque_pointers = false;
   const std::string pre = "-enable-pre";
   const std::string load_pre = "-enable-load-pre";
+  const std::string opaque = "-opaque-pointers";
   for (int i = 1; i < argc; ++i) {
     std::string option(argv[i]);
     auto pre_pos = option.find(pre);
     auto load_pos = option.find(load_pre);
+    auto opaque_pos = option.find(opaque);
     if (pre_pos == 0 || (pre_pos == 1 && option[0] == '-')) {
       has_pre = true;
     } else if (load_pos == 0 || (load_pos == 1 && option[0] == '-')) {
       has_load_pre = true;
+    } else if (opaque_pos == 0 || (opaque_pos == 1 && option[0] == '-')) {
+      has_opaque_pointers = true;
     }
   }
 
   int llvmArgc = 3;
-  const char *llvmArgv[5];
+  const char *llvmArgv[6];
   llvmArgv[0] = argv[0];
   llvmArgv[1] = "-simplifycfg-sink-common=false";
   // TODO(#738): find a better solution to this.
@@ -859,6 +864,10 @@
   if (!has_load_pre) {
     llvmArgv[llvmArgc++] = "-enable-load-pre=0";
   }
+  // TODO(#816): remove this after final transition.
+  if (!has_opaque_pointers) {
+    llvmArgv[llvmArgc++] = "-opaque-pointers=0";
+  }
 
   llvm::cl::ResetAllOptionOccurrences();
   llvm::cl::ParseCommandLineOptions(llvmArgc, llvmArgv);