summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2011-08-19 06:19:25 +0000
committerSean Callanan <scallanan@apple.com>2011-08-19 06:19:25 +0000
commita87bee84cfb516d7128f3f0e4de317b0c7b13673 (patch)
treeb94d8ba5868c2a8f8d62915280bbd25d6d97abe3
parentba6c2a52c72c6706bc821e38d762fe11da386c66 (diff)
downloadbcm5719-llvm-a87bee84cfb516d7128f3f0e4de317b0c7b13673.tar.gz
bcm5719-llvm-a87bee84cfb516d7128f3f0e4de317b0c7b13673.zip
Refined the rollback to LLVM, picking up a newer
revision and adding a patch that fixes an AsmParser crash on ARM. One feature that we unfortunately lost (for the moment!) is the ability to cast unknown code symbols to arbitrary function types and put the resulting function pointer in a result variable. This feature will be back, though. llvm-svn: 138036
-rw-r--r--lldb/lldb.xcodeproj/xcshareddata/xcschemes/lldb-tool.xcscheme17
-rw-r--r--lldb/scripts/build-llvm.pl13
-rw-r--r--lldb/scripts/llvm.isreg.diff12
-rw-r--r--lldb/source/Symbol/ClangASTContext.cpp4
-rw-r--r--lldb/test/lang/c/function_types/TestFunctionTypes.py4
5 files changed, 41 insertions, 9 deletions
diff --git a/lldb/lldb.xcodeproj/xcshareddata/xcschemes/lldb-tool.xcscheme b/lldb/lldb.xcodeproj/xcshareddata/xcschemes/lldb-tool.xcscheme
index afb96900b7d..6e12c06c956 100644
--- a/lldb/lldb.xcodeproj/xcshareddata/xcschemes/lldb-tool.xcscheme
+++ b/lldb/lldb.xcodeproj/xcshareddata/xcschemes/lldb-tool.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- version = "1.8">
+ version = "1.3">
<BuildAction
parallelizeBuildables = "NO"
buildImplicitDependencies = "YES">
@@ -28,6 +28,15 @@
buildConfiguration = "Debug">
<Testables>
</Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "26F5C26910F3D9A4009D5894"
+ BuildableName = "lldb"
+ BlueprintName = "lldb-tool"
+ ReferencedContainer = "container:lldb.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
<CommandLineArguments>
<CommandLineArgument
argument = "/Volumes/work/gclayton/Documents/src/attach/a.out"
@@ -79,7 +88,8 @@
customWorkingDirectory = "/Volumes/work/gclayton/Documents/devb/attach"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "YES"
- enablesOpenGLESFrameCapture = "YES">
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
@@ -129,7 +139,8 @@
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
- ignoresPersistentStateOnLaunch = "YES">
+ ignoresPersistentStateOnLaunch = "YES"
+ debugDocumentVersioning = "YES">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
diff --git a/lldb/scripts/build-llvm.pl b/lldb/scripts/build-llvm.pl
index 75792b45e03..ac6ef176587 100644
--- a/lldb/scripts/build-llvm.pl
+++ b/lldb/scripts/build-llvm.pl
@@ -23,7 +23,7 @@ our @llvm_clang_slices; # paths to the single architecture static libraries (arc
our $llvm_configuration = $ENV{LLVM_CONFIGURATION};
our $llvm_revision = "137143";
-our $clang_revision = "137311";
+our $clang_revision = "137143";
our $llvm_source_dir = "$ENV{SRCROOT}";
our @archs = split (/\s+/, $ENV{ARCHS});
@@ -156,7 +156,16 @@ sub build_llvm
do_command ("cd '$llvm_source_dir' && svn co $svn_options --revision $llvm_revision http://llvm.org/svn/llvm-project/llvm/trunk llvm", "checking out llvm from repository", 1);
print "Checking out clang sources from revision $clang_revision...\n";
do_command ("cd '$llvm_source_dir/llvm/tools' && svn co $svn_options --revision $clang_revision http://llvm.org/svn/llvm-project/cfe/trunk clang", "checking out clang from repository", 1);
- print "Removing the llvm/test directory...\n";
+ print "Applying any local patches to LLVM...";
+
+ my @llvm_patches = bsd_glob("$ENV{SRCROOT}/scripts/llvm.*.diff");
+
+ foreach my $patch (@llvm_patches)
+ {
+ do_command ("cd '$llvm_source_dir/llvm' && patch -p0 < $patch");
+ }
+
+ print "Removing the llvm/test directory...\n";
do_command ("cd '$llvm_source_dir' && rm -rf llvm/test", "removing test directory", 1);
}
diff --git a/lldb/scripts/llvm.isreg.diff b/lldb/scripts/llvm.isreg.diff
new file mode 100644
index 00000000000..54139108d34
--- /dev/null
+++ b/lldb/scripts/llvm.isreg.diff
@@ -0,0 +1,12 @@
+Index: lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+===================================================================
+--- lib/Target/ARM/AsmParser/ARMAsmParser.cpp (revision 137143)
++++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp (working copy)
+@@ -2619,6 +2619,7 @@
+ if (Mnemonic == "mov" && Operands.size() > 4 &&
+ !static_cast<ARMOperand*>(Operands[4])->isARMSOImm() &&
+ static_cast<ARMOperand*>(Operands[4])->isImm0_65535Expr() &&
++ static_cast<ARMOperand*>(Operands[1])->isReg() &&
+ static_cast<ARMOperand*>(Operands[1])->getReg() == 0) {
+ ARMOperand *Op = static_cast<ARMOperand*>(Operands[1]);
+ Operands.erase(Operands.begin() + 1);
diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp
index 68e0eead9bb..db26ca9119f 100644
--- a/lldb/source/Symbol/ClangASTContext.cpp
+++ b/lldb/source/Symbol/ClangASTContext.cpp
@@ -4960,12 +4960,12 @@ ClangASTContext::GetCompleteDecl (clang::ASTContext *ast,
clang::DeclContext *
ClangASTContext::GetAsDeclContext (clang::CXXMethodDecl *cxx_method_decl)
{
- return clang::dyn_cast<clang::DeclContext>(cxx_method_decl);
+ return llvm::dyn_cast<clang::DeclContext>(cxx_method_decl);
}
clang::DeclContext *
ClangASTContext::GetAsDeclContext (clang::ObjCMethodDecl *objc_method_decl)
{
- return clang::dyn_cast<clang::DeclContext>(objc_method_decl);
+ return llvm::dyn_cast<clang::DeclContext>(objc_method_decl);
}
diff --git a/lldb/test/lang/c/function_types/TestFunctionTypes.py b/lldb/test/lang/c/function_types/TestFunctionTypes.py
index e4680ab0189..255849e7c0e 100644
--- a/lldb/test/lang/c/function_types/TestFunctionTypes.py
+++ b/lldb/test/lang/c/function_types/TestFunctionTypes.py
@@ -24,12 +24,12 @@ class FunctionTypesTestCase(TestBase):
def test_pointers_with_dsym(self):
"""Test that a function pointer to 'printf' works and can be called."""
self.buildDsym()
- self.function_pointers()
+ #self.function_pointers() # ROLLED BACK
def test_pointers_with_dwarf(self):
"""Test that a function pointer to 'printf' works and can be called."""
self.buildDwarf()
- self.function_pointers()
+ #self.function_pointers() # ROLLED BACK
def setUp(self):
# Call super's setUp().
OpenPOWER on IntegriCloud