Updated to latest LLVM.  Major LLVM changes:

 - Sema is now exported (and there was much rejoicing.)

 - Storage classes are now centrally defined.

Also fixed some bugs that the new LLVM picked up.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114622 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/IRForTarget.cpp b/source/Expression/IRForTarget.cpp
index cec3583..626cd54 100644
--- a/source/Expression/IRForTarget.cpp
+++ b/source/Expression/IRForTarget.cpp
@@ -34,7 +34,7 @@
                          const TargetData *target_data,
                          bool resolve_vars,
                          const char *func_name) :
-    ModulePass(&ID),
+    ModulePass(ID),
     m_decl_map(decl_map),
     m_target_data(target_data),
     m_sel_registerName(NULL),
@@ -728,12 +728,22 @@
 
 static bool isGuardVariableRef(Value *V)
 {
-    ConstantExpr *C = dyn_cast<ConstantExpr>(V);
+    Constant *C;
     
-    if (!C || C->getOpcode() != Instruction::BitCast)
+    if (!(C = dyn_cast<Constant>(V)))
         return false;
     
-    GlobalVariable *GV = dyn_cast<GlobalVariable>(C->getOperand(0));
+    ConstantExpr *CE;
+    
+    if ((CE = dyn_cast<ConstantExpr>(V)))
+    {
+        if (CE->getOpcode() != Instruction::BitCast)
+            return false;
+        
+        C = CE->getOperand(0);
+    }
+    
+    GlobalVariable *GV = dyn_cast<GlobalVariable>(C);
     
     if (!GV || !GV->hasName() || !GV->getName().startswith("_ZGV"))
         return false;