summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2014-10-09 02:16:38 +0000
committerRui Ueyama <ruiu@google.com>2014-10-09 02:16:38 +0000
commit979fb40be0ba586f63a9c973581117ecef99b601 (patch)
treeba9fe560a9a20275a6180b58b1628c00056903de /llvm/lib
parent143f02c47d3e09015fa954b9888bfca8db30bdcb (diff)
downloadbcm5719-llvm-979fb40be0ba586f63a9c973581117ecef99b601.tar.gz
bcm5719-llvm-979fb40be0ba586f63a9c973581117ecef99b601.zip
Object: Add range iterators for COFF import/export table
llvm-svn: 219383
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Object/COFFObjectFile.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp
index ebf24a931ce..adc68ec62c5 100644
--- a/llvm/lib/Object/COFFObjectFile.cpp
+++ b/llvm/lib/Object/COFFObjectFile.cpp
@@ -730,6 +730,22 @@ unsigned COFFObjectFile::getArch() const {
}
}
+iterator_range<import_directory_iterator>
+COFFObjectFile::import_directories() const {
+ return make_range(import_directory_begin(), import_directory_end());
+}
+
+iterator_range<delay_import_directory_iterator>
+COFFObjectFile::delay_import_directories() const {
+ return make_range(delay_import_directory_begin(),
+ delay_import_directory_end());
+}
+
+iterator_range<export_directory_iterator>
+COFFObjectFile::export_directories() const {
+ return make_range(export_directory_begin(), export_directory_end());
+}
+
std::error_code COFFObjectFile::getPE32Header(const pe32_header *&Res) const {
Res = PE32Header;
return object_error::success;
@@ -1094,6 +1110,11 @@ ImportDirectoryEntryRef::imported_symbol_end() const {
OwningObject);
}
+iterator_range<imported_symbol_iterator>
+ImportDirectoryEntryRef::imported_symbols() const {
+ return make_range(imported_symbol_begin(), imported_symbol_end());
+}
+
std::error_code ImportDirectoryEntryRef::getName(StringRef &Result) const {
uintptr_t IntPtr = 0;
if (std::error_code EC =
@@ -1146,6 +1167,11 @@ DelayImportDirectoryEntryRef::imported_symbol_end() const {
OwningObject);
}
+iterator_range<imported_symbol_iterator>
+DelayImportDirectoryEntryRef::imported_symbols() const {
+ return make_range(imported_symbol_begin(), imported_symbol_end());
+}
+
std::error_code DelayImportDirectoryEntryRef::getName(StringRef &Result) const {
uintptr_t IntPtr = 0;
if (std::error_code EC = OwningObject->getRvaPtr(Table[Index].Name, IntPtr))
OpenPOWER on IntegriCloud