diff options
| author | Sean Callanan <scallanan@apple.com> | 2011-08-19 06:19:25 +0000 |
|---|---|---|
| committer | Sean Callanan <scallanan@apple.com> | 2011-08-19 06:19:25 +0000 |
| commit | a87bee84cfb516d7128f3f0e4de317b0c7b13673 (patch) | |
| tree | b94d8ba5868c2a8f8d62915280bbd25d6d97abe3 | |
| parent | ba6c2a52c72c6706bc821e38d762fe11da386c66 (diff) | |
| download | bcm5719-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.xcscheme | 17 | ||||
| -rw-r--r-- | lldb/scripts/build-llvm.pl | 13 | ||||
| -rw-r--r-- | lldb/scripts/llvm.isreg.diff | 12 | ||||
| -rw-r--r-- | lldb/source/Symbol/ClangASTContext.cpp | 4 | ||||
| -rw-r--r-- | lldb/test/lang/c/function_types/TestFunctionTypes.py | 4 |
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(). |

