Provide an interface for getting just the external symbols from a
authorReid Spencer <rspencer@reidspencer.com>
Sat, 6 Nov 2004 08:54:47 +0000 (08:54 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Sat, 6 Nov 2004 08:54:47 +0000 (08:54 +0000)
Bytecode file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17502 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Bytecode/Reader.h

index 4b9f802d384763e778eeb9780daab1d902e7416e..a71700123f27b5118dc477293e274d130289f84f 100644 (file)
@@ -19,6 +19,7 @@
 #ifndef LLVM_BYTECODE_READER_H
 #define LLVM_BYTECODE_READER_H
 
+#include "llvm/System/Path.h"
 #include "llvm/ModuleProvider.h"
 #include "llvm/Module.h"
 #include <string>
@@ -62,6 +63,15 @@ Module* ParseBytecodeBuffer(const unsigned char *Buffer,
 bool GetBytecodeDependentLibraries(const std::string &fileName, 
                                    Module::LibraryListType& deplibs);
 
+/// This function will read only the necessary parts of a bytecode file in order
+/// to obtain a list of externally visible global symbols that the bytecode
+/// module defines. This is used for archiving and linking when only the list 
+/// of symbols the module defines is needed.
+/// @returns true on success, false otherwise
+/// @brief Get a bytecode file's externally visibile defined global symbols.
+bool GetBytecodeSymbols(const sys::Path& fileName, 
+                        std::vector<std::string>& syms);
+
 /// Read bytecode files from the specfied archive (.a) file, convert them
 /// to Module* and provide them in the \p Objects argument. If an error
 /// occurs, ErrorStr (if non-null) will be set to a string explaining