mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
Implement error handling in OpenAndLoad* functions so the Linker can handle it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18853 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
56c3ed854f
commit
5af46883f2
@ -280,13 +280,17 @@ Archive::loadArchive() {
|
||||
|
||||
// Open and completely load the archive file.
|
||||
Archive*
|
||||
Archive::OpenAndLoad(const sys::Path& file) {
|
||||
|
||||
Archive* result = new Archive(file, true);
|
||||
|
||||
result->loadArchive();
|
||||
|
||||
return result;
|
||||
Archive::OpenAndLoad(const sys::Path& file, std::string* ErrorMessage) {
|
||||
try {
|
||||
Archive* result = new Archive(file, true);
|
||||
result->loadArchive();
|
||||
return result;
|
||||
} catch (const std::string& msg) {
|
||||
if (ErrorMessage) {
|
||||
*ErrorMessage = msg;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Get all the bytecode modules from the archive
|
||||
@ -371,12 +375,17 @@ Archive::loadSymbolTable() {
|
||||
|
||||
// Open the archive and load just the symbol tables
|
||||
Archive*
|
||||
Archive::OpenAndLoadSymbols(const sys::Path& file) {
|
||||
Archive* result = new Archive(file, true);
|
||||
|
||||
result->loadSymbolTable();
|
||||
|
||||
return result;
|
||||
Archive::OpenAndLoadSymbols(const sys::Path& file, std::string* ErrorMessage) {
|
||||
try {
|
||||
Archive* result = new Archive(file, true);
|
||||
result->loadSymbolTable();
|
||||
return result;
|
||||
} catch (const std::string& msg) {
|
||||
if (ErrorMessage) {
|
||||
*ErrorMessage = msg;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Look up one symbol in the symbol table and return a ModuleProvider for the
|
||||
|
@ -280,13 +280,17 @@ Archive::loadArchive() {
|
||||
|
||||
// Open and completely load the archive file.
|
||||
Archive*
|
||||
Archive::OpenAndLoad(const sys::Path& file) {
|
||||
|
||||
Archive* result = new Archive(file, true);
|
||||
|
||||
result->loadArchive();
|
||||
|
||||
return result;
|
||||
Archive::OpenAndLoad(const sys::Path& file, std::string* ErrorMessage) {
|
||||
try {
|
||||
Archive* result = new Archive(file, true);
|
||||
result->loadArchive();
|
||||
return result;
|
||||
} catch (const std::string& msg) {
|
||||
if (ErrorMessage) {
|
||||
*ErrorMessage = msg;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Get all the bytecode modules from the archive
|
||||
@ -371,12 +375,17 @@ Archive::loadSymbolTable() {
|
||||
|
||||
// Open the archive and load just the symbol tables
|
||||
Archive*
|
||||
Archive::OpenAndLoadSymbols(const sys::Path& file) {
|
||||
Archive* result = new Archive(file, true);
|
||||
|
||||
result->loadSymbolTable();
|
||||
|
||||
return result;
|
||||
Archive::OpenAndLoadSymbols(const sys::Path& file, std::string* ErrorMessage) {
|
||||
try {
|
||||
Archive* result = new Archive(file, true);
|
||||
result->loadSymbolTable();
|
||||
return result;
|
||||
} catch (const std::string& msg) {
|
||||
if (ErrorMessage) {
|
||||
*ErrorMessage = msg;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Look up one symbol in the symbol table and return a ModuleProvider for the
|
||||
|
Loading…
Reference in New Issue
Block a user