aboutsummaryrefslogtreecommitdiffstats
path: root/llvm-rs-cc.cpp
diff options
context:
space:
mode:
authorLogan <tzuhsiang.chien@gmail.com>2011-02-16 22:02:54 +0800
committerLogan Chien <tzuhsiang.chien@gmail.com>2011-03-09 22:38:32 +0800
commitbe27482cdeaf08576bc39b72a15d35d13014a636 (patch)
tree799860734e7d610e3fbda6f38719fe4177f656fa /llvm-rs-cc.cpp
parent832429f6bf4592cfc2ce58f2462f1e8ecdbaaf52 (diff)
downloadframeworks_compile_slang-be27482cdeaf08576bc39b72a15d35d13014a636.tar.gz
frameworks_compile_slang-be27482cdeaf08576bc39b72a15d35d13014a636.tar.bz2
frameworks_compile_slang-be27482cdeaf08576bc39b72a15d35d13014a636.zip
Apply changes to migrate to LLVM Mar 6th 2011.
- API for name mangling. (Changing from non-public APIs to the public one) - API changes for clang::Diagnostic::getNumErrors -> clang::Diagnostic::hasErrorOccurred - API changes for clang::CharUnits and Quantity type. - API changes libLLVMSystem -> libLLVMSupport. - Change clang::Token::eom -> clang::Token::eod. - Remove SourceRange parameter for DeclRefExpr::Create and MemberExpr::Create. - Add const qualifier for several unsafe type cast.
Diffstat (limited to 'llvm-rs-cc.cpp')
-rw-r--r--llvm-rs-cc.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/llvm-rs-cc.cpp b/llvm-rs-cc.cpp
index f0c24ca..4eadfea 100644
--- a/llvm-rs-cc.cpp
+++ b/llvm-rs-cc.cpp
@@ -31,12 +31,14 @@
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/IntrusiveRefCntPtr.h"
+#include "llvm/ADT/OwningPtr.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/MemoryBuffer.h"
-
-#include "llvm/System/Path.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/system_error.h"
#include "slang.h"
#include "slang_assert.h"
@@ -336,14 +338,18 @@ int main(int argc, const char **argv) {
clang::TextDiagnosticPrinter *DiagClient =
new clang::TextDiagnosticPrinter(llvm::errs(), clang::DiagnosticOptions());
DiagClient->setPrefix(Argv0);
- clang::Diagnostic Diags(DiagClient);
+
+ llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> DiagIDs(
+ new clang::DiagnosticIDs());
+
+ clang::Diagnostic Diags(DiagIDs, DiagClient, true);
slang::Slang::GlobalInitialization();
ParseArguments(ArgVector, Inputs, Opts, Diags);
// Exits when there's any error occurred during parsing the arguments
- if (Diags.getNumErrors() > 0)
+ if (Diags.hasErrorOccurred())
return 1;
if (Opts.mShowHelp) {
@@ -426,8 +432,9 @@ static void ExpandArgsFromBuf(const char *Arg,
llvm::SmallVectorImpl<const char*> &ArgVector,
std::set<std::string> &SavedStrings) {
const char *FName = Arg + 1;
- llvm::MemoryBuffer *MemBuf = llvm::MemoryBuffer::getFile(FName);
- if (!MemBuf) {
+ llvm::OwningPtr<llvm::MemoryBuffer> MemBuf;
+ if (llvm::MemoryBuffer::getFile(FName, MemBuf)) {
+ // Unable to open the file
ArgVector.push_back(SaveStringInSet(SavedStrings, Arg));
return;
}
@@ -477,7 +484,6 @@ static void ExpandArgsFromBuf(const char *Arg,
}
CurArg.push_back(*P);
}
- delete MemBuf;
}
// ExpandArgsFromBuf -