If compile unit's language is not set then don't crash while dump'ing compile unit.
[oota-llvm.git] / lib / Archive / Archive.cpp
index e32c7164bd10a7d00a75fb68cfdb5d6c5c335ac2..c6c89d27dbb0ab78592953e2542de3da5ca077eb 100644 (file)
@@ -43,7 +43,7 @@ ArchiveMember::getMemberSize() const {
 // This default constructor is only use by the ilist when it creates its
 // sentry node. We give it specific static values to make it stand out a bit.
 ArchiveMember::ArchiveMember()
-  : next(0), prev(0), parent(0), path("--invalid--"), flags(0), data(0)
+  : parent(0), path("--invalid--"), flags(0), data(0)
 {
   info.user = sys::Process::GetCurrentUserId();
   info.group = sys::Process::GetCurrentGroupId();
@@ -58,7 +58,7 @@ ArchiveMember::ArchiveMember()
 // This is required because correctly setting the data may depend on other
 // things in the Archive.
 ArchiveMember::ArchiveMember(Archive* PAR)
-  : next(0), prev(0), parent(PAR), path(), flags(0), data(0)
+  : parent(PAR), path(), flags(0), data(0)
 {
 }
 
@@ -145,7 +145,7 @@ Archive::Archive(const sys::Path& filename)
 
 bool
 Archive::mapToMemory(std::string* ErrMsg) {
-  mapfile = MemoryBuffer::getFile(archPath.c_str(), archPath.size(), ErrMsg);
+  mapfile = MemoryBuffer::getFile(archPath.c_str(), ErrMsg);
   if (mapfile == 0)
     return true;
   base = mapfile->getBufferStart();
@@ -188,13 +188,13 @@ Archive::~Archive() {
 static void getSymbols(Module*M, std::vector<std::string>& symbols) {
   // Loop over global variables
   for (Module::global_iterator GI = M->global_begin(), GE=M->global_end(); GI != GE; ++GI)
-    if (!GI->isDeclaration() && !GI->hasInternalLinkage())
+    if (!GI->isDeclaration() && !GI->hasLocalLinkage())
       if (!GI->getName().empty())
         symbols.push_back(GI->getName());
   
   // Loop over functions
   for (Module::iterator FI = M->begin(), FE = M->end(); FI != FE; ++FI)
-    if (!FI->isDeclaration() && !FI->hasInternalLinkage())
+    if (!FI->isDeclaration() && !FI->hasLocalLinkage())
       if (!FI->getName().empty())
         symbols.push_back(FI->getName());
 
@@ -211,8 +211,7 @@ bool llvm::GetBitcodeSymbols(const sys::Path& fName,
                              std::vector<std::string>& symbols,
                              std::string* ErrMsg) {
   std::auto_ptr<MemoryBuffer> Buffer(
-                       MemoryBuffer::getFileOrSTDIN(&fName.toString()[0],
-                                                    fName.toString().size()));
+                       MemoryBuffer::getFileOrSTDIN(fName.c_str()));
   if (!Buffer.get()) {
     if (ErrMsg) *ErrMsg = "Could not open file '" + fName.toString() + "'";
     return true;