support of building with C++11

This commit is contained in:
Ilia Filippov
2014-03-04 16:01:18 +04:00
parent 798b6b202c
commit c4e35050b0
4 changed files with 19 additions and 7 deletions

View File

@@ -119,9 +119,9 @@ CXXFLAGS=$(OPT) $(LLVM_CXXFLAGS) -I. -Iobjs/ -I$(CLANG_INCLUDE) \
$(LLVM_VERSION_DEF) \ $(LLVM_VERSION_DEF) \
-Wall \ -Wall \
-DBUILD_DATE="\"$(BUILD_DATE)\"" -DBUILD_VERSION="\"$(BUILD_VERSION)\"" \ -DBUILD_DATE="\"$(BUILD_DATE)\"" -DBUILD_VERSION="\"$(BUILD_VERSION)\"" \
-Wno-sign-compare -Wno-unused-function -Wno-sign-compare -Wno-unused-function -Werror
ifneq ($(LLVM_VERSION),LLVM_3_1) ifeq ($(LLVM_VERSION),LLVM_3_5)
CXXFLAGS+=-Werror CXXFLAGS+=-std=c++11 -Wno-c99-extensions -Wno-deprecated-register
endif endif
ifneq ($(ARM_ENABLED), 0) ifneq ($(ARM_ENABLED), 0)
CXXFLAGS+=-DISPC_ARM_ENABLED CXXFLAGS+=-DISPC_ARM_ENABLED

View File

@@ -3123,7 +3123,11 @@ void CWriter::visitSwitchInst(llvm::SwitchInst &SI) {
Out << ":\n"; Out << ":\n";
printPHICopiesForSuccessor (SI.getParent(), Succ, 2); printPHICopiesForSuccessor (SI.getParent(), Succ, 2);
printBranchToBlock(SI.getParent(), Succ, 2); printBranchToBlock(SI.getParent(), Succ, 2);
#if defined (LLVM_3_5)
if (llvm::Function::iterator(Succ) == std::next(llvm::Function::iterator(SI.getParent())))
#else
if (llvm::Function::iterator(Succ) == llvm::next(llvm::Function::iterator(SI.getParent()))) if (llvm::Function::iterator(Succ) == llvm::next(llvm::Function::iterator(SI.getParent())))
#endif
Out << " break;\n"; Out << " break;\n";
} }
@@ -3144,7 +3148,11 @@ bool CWriter::isGotoCodeNecessary(llvm::BasicBlock *From, llvm::BasicBlock *To)
/// FIXME: This should be reenabled, but loop reordering safe!! /// FIXME: This should be reenabled, but loop reordering safe!!
return true; return true;
#if defined (LLVM_3_5)
if (std::next(llvm::Function::iterator(From)) != llvm::Function::iterator(To))
#else
if (llvm::next(llvm::Function::iterator(From)) != llvm::Function::iterator(To)) if (llvm::next(llvm::Function::iterator(From)) != llvm::Function::iterator(To))
#endif
return true; // Not the direct successor, we need a goto. return true; // Not the direct successor, we need a goto.
//llvm::isa<llvm::SwitchInst>(From->getTerminator()) //llvm::isa<llvm::SwitchInst>(From->getTerminator())
@@ -3752,7 +3760,11 @@ void CWriter::lowerIntrinsics(llvm::Function &F) {
// All other intrinsic calls we must lower. // All other intrinsic calls we must lower.
llvm::Instruction *Before = 0; llvm::Instruction *Before = 0;
if (CI != &BB->front()) if (CI != &BB->front())
#if defined(LLVM_3_5)
Before = std::prev(llvm::BasicBlock::iterator(CI));
#else
Before = prior(llvm::BasicBlock::iterator(CI)); Before = prior(llvm::BasicBlock::iterator(CI));
#endif
IL->LowerIntrinsicCall(CI); IL->LowerIntrinsicCall(CI);
if (Before) { // Move iterator to instruction after call if (Before) { // Move iterator to instruction after call

View File

@@ -577,7 +577,7 @@ GetDirectoryAndFileName(const std::string &currentDirectory,
const char *basenameStart = strrchr(fp, '/'); const char *basenameStart = strrchr(fp, '/');
Assert(basenameStart != NULL); Assert(basenameStart != NULL);
++basenameStart; ++basenameStart;
Assert(basenameStart != '\0'); Assert(basenameStart[0] != '\0');
*filename = basenameStart; *filename = basenameStart;
*directory = std::string(fp, basenameStart - fp); *directory = std::string(fp, basenameStart - fp);
#endif // ISPC_IS_WINDOWS #endif // ISPC_IS_WINDOWS