Updated to the LLVM/Clang of 2010-11-17 at 3:30pm.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@119677 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangASTSource.cpp b/source/Expression/ClangASTSource.cpp
index 330c1da..e808a04 100644
--- a/source/Expression/ClangASTSource.cpp
+++ b/source/Expression/ClangASTSource.cpp
@@ -36,6 +36,7 @@
// for method signatures!) might help.
Selector ClangASTSource::GetExternalSelector(uint32_t) { return Selector(); }
uint32_t ClangASTSource::GetNumExternalSelectors() { return 0; }
+CXXBaseSpecifier *ClangASTSource::GetExternalCXXBaseSpecifiers(uint64_t Offset) { return NULL; }
// The core lookup interface.
DeclContext::lookup_result ClangASTSource::FindExternalVisibleDeclsByName
diff --git a/source/Expression/ClangExpressionParser.cpp b/source/Expression/ClangExpressionParser.cpp
index 1497dab..ad0807a 100644
--- a/source/Expression/ClangExpressionParser.cpp
+++ b/source/Expression/ClangExpressionParser.cpp
@@ -243,8 +243,11 @@
// 5. Set up the source management objects inside the compiler
+ m_file_manager.reset(new clang::FileManager());
+ m_file_system_options.reset(new clang::FileSystemOptions());
+
if (!m_compiler->hasSourceManager())
- m_compiler->createSourceManager();
+ m_compiler->createSourceManager(*m_file_manager.get(), *m_file_system_options.get());
m_compiler->createFileManager();
m_compiler->createPreprocessor();
diff --git a/source/Symbol/ClangASTContext.cpp b/source/Symbol/ClangASTContext.cpp
index a7fe230..1ab02b9 100644
--- a/source/Symbol/ClangASTContext.cpp
+++ b/source/Symbol/ClangASTContext.cpp
@@ -23,6 +23,7 @@
#include "clang/AST/Type.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/FileManager.h"
+#include "clang/Basic/FileSystemOptions.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/TargetOptions.h"
@@ -351,11 +352,27 @@
return m_selector_table_ap.get();
}
+clang::FileManager *
+ClangASTContext::getFileManager()
+{
+ if (m_file_manager_ap.get() == NULL)
+ m_file_manager_ap.reset(new clang::FileManager());
+ return m_file_manager_ap.get();
+}
+
+clang::FileSystemOptions *
+ClangASTContext::getFileSystemOptions()
+{
+ if (m_file_system_options_ap.get() == NULL)
+ m_file_system_options_ap.reset(new clang::FileSystemOptions());
+ return m_file_system_options_ap.get();
+}
+
clang::SourceManager *
ClangASTContext::getSourceManager()
{
if (m_source_manager_ap.get() == NULL)
- m_source_manager_ap.reset(new clang::SourceManager(*getDiagnostic()));
+ m_source_manager_ap.reset(new clang::SourceManager(*getDiagnostic(), *getFileManager(), *getFileSystemOptions()));
return m_source_manager_ap.get();
}
@@ -730,9 +747,10 @@
NullDiagnosticClient *null_client = new NullDiagnosticClient;
Diagnostic diagnostics(null_client);
FileManager file_manager;
+ FileSystemOptions file_system_options;
ASTImporter importer(diagnostics,
- *dest_context, file_manager,
- *source_context, file_manager);
+ *dest_context, file_manager, file_system_options,
+ *source_context, file_manager, file_system_options);
QualType src = QualType::getFromOpaquePtr(clang_type);
QualType dst = importer.Import(src);
@@ -750,9 +768,10 @@
NullDiagnosticClient *null_client = new NullDiagnosticClient;
Diagnostic diagnostics(null_client);
FileManager file_manager;
+ FileSystemOptions file_system_options;
ASTImporter importer(diagnostics,
- *dest_context, file_manager,
- *source_context, file_manager);
+ *dest_context, file_manager, file_system_options,
+ *source_context, file_manager, file_system_options);
return importer.Import(source_decl);
}
@@ -2095,9 +2114,9 @@
if (base_class->isVirtual())
- bit_offset = record_layout.getVBaseClassOffset(base_class_decl);
+ bit_offset = record_layout.getVBaseClassOffset(base_class_decl).getQuantity();
else
- bit_offset = record_layout.getBaseClassOffset(base_class_decl);
+ bit_offset = record_layout.getBaseClassOffset(base_class_decl).getQuantity();
// Base classes should be a multiple of 8 bits in size
assert (bit_offset % 8 == 0);
diff --git a/source/Symbol/ClangASTType.cpp b/source/Symbol/ClangASTType.cpp
index c40ce14..f24834d 100644
--- a/source/Symbol/ClangASTType.cpp
+++ b/source/Symbol/ClangASTType.cpp
@@ -367,9 +367,9 @@
continue;
if (base_class->isVirtual())
- field_bit_offset = record_layout.getVBaseClassOffset(base_class_decl);
+ field_bit_offset = record_layout.getVBaseClassOffset(base_class_decl).getQuantity();
else
- field_bit_offset = record_layout.getBaseClassOffset(base_class_decl);
+ field_bit_offset = record_layout.getBaseClassOffset(base_class_decl).getQuantity();
field_byte_offset = field_bit_offset / 8;
assert (field_bit_offset % 8 == 0);
if (child_idx == 0)