Updated LLVM and LLDB to fix compilation errors
with recent Clang.  Clang is now stricter about
presence of complete types and about use of the
"template" keyword in C++ for template-dependent
types.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153563 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/scripts/clang.template-keyword-fixes.diff b/scripts/clang.template-keyword-fixes.diff
new file mode 100644
index 0000000..dbba709
--- /dev/null
+++ b/scripts/clang.template-keyword-fixes.diff
@@ -0,0 +1,13 @@
+Index: lib/AST/ExprConstant.cpp
+===================================================================
+--- lib/AST/ExprConstant.cpp	(revision 152265)
++++ lib/AST/ExprConstant.cpp	(working copy)
+@@ -4210,7 +4210,7 @@
+ /// character of a string literal.
+ template<typename LValue>
+ static bool EvaluateBuiltinConstantPForLValue(const LValue &LV) {
+-  const Expr *E = LV.getLValueBase().dyn_cast<const Expr*>();
++  const Expr *E = LV.getLValueBase().template dyn_cast<const Expr*>();
+   return E && isa<StringLiteral>(E) && LV.getLValueOffset().isZero();
+ }
+ 
diff --git a/scripts/llvm.template-keyword-fixes.diff b/scripts/llvm.template-keyword-fixes.diff
new file mode 100644
index 0000000..98eae08
--- /dev/null
+++ b/scripts/llvm.template-keyword-fixes.diff
@@ -0,0 +1,35 @@
+Index: include/llvm/ADT/PointerUnion.h
+===================================================================
+--- include/llvm/ADT/PointerUnion.h	(revision 152265)
++++ include/llvm/ADT/PointerUnion.h	(working copy)
+@@ -266,7 +266,7 @@
+         ::llvm::PointerUnionTypeSelector<PT1, T, IsInnerUnion,
+           ::llvm::PointerUnionTypeSelector<PT2, T, IsInnerUnion, IsPT3 >
+                                                                    >::Return Ty;
+-      return Ty(Val).is<T>();
++      return Ty(Val).template is<T>();
+     }
+     
+     /// get<T>() - Return the value of the specified pointer type. If the
+@@ -279,7 +279,7 @@
+         ::llvm::PointerUnionTypeSelector<PT1, T, IsInnerUnion,
+           ::llvm::PointerUnionTypeSelector<PT2, T, IsInnerUnion, IsPT3 >
+                                                                    >::Return Ty;
+-      return Ty(Val).get<T>();
++      return Ty(Val).template get<T>();
+     }
+     
+     /// dyn_cast<T>() - If the current value is of the specified pointer type,
+Index: include/llvm/ADT/IntervalMap.h
+===================================================================
+--- include/llvm/ADT/IntervalMap.h	(revision 152265)
++++ include/llvm/ADT/IntervalMap.h	(working copy)
+@@ -1977,7 +1977,7 @@
+     CurSize[Nodes] = CurSize[NewNode];
+     Node[Nodes] = Node[NewNode];
+     CurSize[NewNode] = 0;
+-    Node[NewNode] = this->map->newNode<NodeT>();
++    Node[NewNode] = this->map->template newNode<NodeT>();
+     ++Nodes;
+   }
+