[ELF] Add support for reading dynamic libraries.

llvm-svn: 174916
diff --git a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
index e351cc1..5320b6e 100644
--- a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
+++ b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
@@ -220,13 +220,15 @@
 template <typename T>
 class AtomList : public lld::File::atom_collection<T> {
 public:
-  virtual lld::File::atom_iterator<T> begin() const { 
-    return lld::File::atom_iterator<T>(*this, reinterpret_cast<const void*>
-                                                            (_atoms.data()));
+  virtual lld::File::atom_iterator<T> begin() const {
+    return lld::File::atom_iterator<
+        T>(*this,
+           _atoms.empty() ? 0 : reinterpret_cast<const void *>(_atoms.data()));
   }
-  virtual lld::File::atom_iterator<T> end() const{ 
-    return lld::File::atom_iterator<T>(*this, reinterpret_cast<const void*>
-                                            (_atoms.data() + _atoms.size()));
+  virtual lld::File::atom_iterator<T> end() const{
+    return lld::File::atom_iterator<
+        T>(*this, _atoms.empty() ? 0 :
+               reinterpret_cast<const void *>(_atoms.data() + _atoms.size()));
   }
   virtual const T *deref(const void *it) const {
     return *reinterpret_cast<const T *const*>(it);