diff options
| author | Simon Atanasyan <simon@atanasyan.com> | 2014-04-30 19:04:01 +0000 | 
|---|---|---|
| committer | Simon Atanasyan <simon@atanasyan.com> | 2014-04-30 19:04:01 +0000 | 
| commit | a64f34b759bb19a49d9fcc6be6db8f703a9c79d7 (patch) | |
| tree | acecb63e11363876e443ca9e003cb6d36ea90e45 /lld | |
| parent | db8a4a8578af7703937c30b47ee3ffc9a952e6b4 (diff) | |
| download | bcm5719-llvm-a64f34b759bb19a49d9fcc6be6db8f703a9c79d7.tar.gz bcm5719-llvm-a64f34b759bb19a49d9fcc6be6db8f703a9c79d7.zip  | |
[Driver] Check type of InputElement before request a error message. If the
element is a FileNode, request error description. If the element is Group,
print hard coded error message. We need to implement a better diagnostics
here but even current solution is better than a segmentation fault output.
llvm-svn: 207691
Diffstat (limited to 'lld')
| -rw-r--r-- | lld/lib/Driver/Driver.cpp | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/lld/lib/Driver/Driver.cpp b/lld/lib/Driver/Driver.cpp index 1122ae9bc54..f87bf5b16c3 100644 --- a/lld/lib/Driver/Driver.cpp +++ b/lld/lib/Driver/Driver.cpp @@ -63,8 +63,13 @@ bool Driver::link(LinkingContext &context, raw_ostream &diagnostics) {        llvm::raw_string_ostream stream(buf);        if (error_code ec = ie->parse(context, stream)) { -        FileNode *fileNode = dyn_cast<FileNode>(ie.get()); -        stream << fileNode->errStr(ec) << "\n"; +        if (FileNode *fileNode = dyn_cast<FileNode>(ie.get())) +          stream << fileNode->errStr(ec) << "\n"; +        else if (dyn_cast<Group>(ie.get())) +          // FIXME: We need a better diagnostics here +          stream << "Cannot parse group input element\n"; +        else +          llvm_unreachable("Unknown type of input element");          fail = true;        }  | 

