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.

llvm-svn: 153563
This commit is contained in:
Sean Callanan 2012-03-28 02:25:40 +00:00
parent 7317a5cbfc
commit 2f22999bab
3 changed files with 48 additions and 4 deletions

View File

@ -17,11 +17,7 @@
#include "clang/AST/ASTImporter.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/FileSystemOptions.h"
#if defined(__GNUC__) && !defined(__clang__)
// Gcc complains about ClangNamespaceDecl being an incomplete type
// without this.
#include "lldb/Symbol/ClangNamespaceDecl.h"
#endif
namespace lldb_private {

View File

@ -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();
}

View File

@ -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;
}