Fix gcc 4.3 build

This commit is contained in:
Bryan O'Sullivan 2008-03-06 07:18:30 +00:00
parent 7889508a18
commit a2e4a2fe04
2 changed files with 803 additions and 1 deletions

797
llvm-2.2-gcc43.patch Normal file
View File

@ -0,0 +1,797 @@
diff -r ba4f1d4ee0d4 include/llvm/ADT/BitVector.h
--- a/include/llvm/ADT/BitVector.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/ADT/BitVector.h Wed Mar 05 23:15:18 2008 -0800
@@ -16,8 +16,9 @@
#include "llvm/Support/MathExtras.h"
#include <algorithm>
+#include <cassert>
#include <cstdlib>
-#include <cassert>
+#include <cstring>
namespace llvm {
diff -r ba4f1d4ee0d4 include/llvm/ADT/DenseMap.h
--- a/include/llvm/ADT/DenseMap.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/ADT/DenseMap.h Wed Mar 05 23:15:18 2008 -0800
@@ -313,7 +313,7 @@
NumEntries = 0;
NumTombstones = 0;
NumBuckets = InitBuckets;
- assert(InitBuckets && (InitBuckets & InitBuckets-1) == 0 &&
+ assert(InitBuckets && (InitBuckets & (InitBuckets-1)) == 0 &&
"# initial buckets must be a power of two!");
Buckets = reinterpret_cast<BucketT*>(new char[sizeof(BucketT)*InitBuckets]);
// Initialize all the keys to EmptyKey.
diff -r ba4f1d4ee0d4 include/llvm/ADT/ilist
--- a/include/llvm/ADT/ilist Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/ADT/ilist Wed Mar 05 23:15:18 2008 -0800
@@ -40,6 +40,7 @@
#include "llvm/ADT/iterator"
#include <cassert>
+#include <cstdlib>
namespace llvm {
diff -r ba4f1d4ee0d4 include/llvm/Analysis/LoopInfo.h
--- a/include/llvm/Analysis/LoopInfo.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/Analysis/LoopInfo.h Wed Mar 05 23:15:18 2008 -0800
@@ -397,13 +397,14 @@
if (BranchInst *BI = dyn_cast<BranchInst>(BackedgeBlock->getTerminator()))
if (BI->isConditional()) {
if (ICmpInst *ICI = dyn_cast<ICmpInst>(BI->getCondition())) {
- if (ICI->getOperand(0) == Inc)
+ if (ICI->getOperand(0) == Inc) {
if (BI->getSuccessor(0) == getHeader()) {
if (ICI->getPredicate() == ICmpInst::ICMP_NE)
return ICI->getOperand(1);
} else if (ICI->getPredicate() == ICmpInst::ICMP_EQ) {
return ICI->getOperand(1);
}
+ }
}
}
diff -r ba4f1d4ee0d4 include/llvm/Analysis/ScalarEvolutionExpressions.h
--- a/include/llvm/Analysis/ScalarEvolutionExpressions.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/Analysis/ScalarEvolutionExpressions.h Wed Mar 05 23:15:18 2008 -0800
@@ -252,11 +252,12 @@
virtual bool hasComputableLoopEvolution(const Loop *L) const {
bool HasVarying = false;
for (unsigned i = 0, e = getNumOperands(); i != e; ++i)
- if (!getOperand(i)->isLoopInvariant(L))
+ if (!getOperand(i)->isLoopInvariant(L)) {
if (getOperand(i)->hasComputableLoopEvolution(L))
HasVarying = true;
else
return false;
+ }
return HasVarying;
}
diff -r ba4f1d4ee0d4 include/llvm/CodeGen/MachineRegisterInfo.h
--- a/include/llvm/CodeGen/MachineRegisterInfo.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/CodeGen/MachineRegisterInfo.h Wed Mar 05 23:15:18 2008 -0800
@@ -207,8 +207,8 @@
// If the first node isn't one we're interested in, advance to one that
// we are interested in.
if (op) {
- if (!ReturnUses && op->isUse() ||
- !ReturnDefs && op->isDef())
+ if ((!ReturnUses && op->isUse()) ||
+ (!ReturnDefs && op->isDef()))
++*this;
}
}
@@ -236,8 +236,8 @@
Op = Op->getNextOperandForReg();
// If this is an operand we don't care about, skip it.
- while (Op && (!ReturnUses && Op->isUse() ||
- !ReturnDefs && Op->isDef()))
+ while (Op && ((!ReturnUses && Op->isUse()) ||
+ (!ReturnDefs && Op->isDef())))
Op = Op->getNextOperandForReg();
return *this;
diff -r ba4f1d4ee0d4 include/llvm/CodeGen/SelectionDAGNodes.h
--- a/include/llvm/CodeGen/SelectionDAGNodes.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/CodeGen/SelectionDAGNodes.h Wed Mar 05 23:15:18 2008 -0800
@@ -802,8 +802,8 @@
static inline SDOperand getEmptyKey() { return SDOperand((SDNode*)-1, -1U); }
static inline SDOperand getTombstoneKey() { return SDOperand((SDNode*)-1, 0);}
static unsigned getHashValue(const SDOperand &Val) {
- return (unsigned)((uintptr_t)Val.Val >> 4) ^
- (unsigned)((uintptr_t)Val.Val >> 9) + Val.ResNo;
+ return ((unsigned)((uintptr_t)Val.Val >> 4) ^
+ (unsigned)((uintptr_t)Val.Val >> 9)) + Val.ResNo;
}
static bool isEqual(const SDOperand &LHS, const SDOperand &RHS) {
return LHS == RHS;
diff -r ba4f1d4ee0d4 include/llvm/LinkTimeOptimizer.h
--- a/include/llvm/LinkTimeOptimizer.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/LinkTimeOptimizer.h Wed Mar 05 23:15:18 2008 -0800
@@ -16,6 +16,7 @@
#define __LTO_H__
#include <string>
+#include <cstring>
#include <vector>
#include <set>
#include <llvm/ADT/hash_map>
diff -r ba4f1d4ee0d4 include/llvm/Support/Streams.h
--- a/include/llvm/Support/Streams.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/Support/Streams.h Wed Mar 05 23:15:18 2008 -0800
@@ -16,6 +16,7 @@
#define LLVM_SUPPORT_STREAMS_H
#include <iosfwd>
+#include <ostream>
namespace llvm {
diff -r ba4f1d4ee0d4 include/llvm/Target/SubtargetFeature.h
--- a/include/llvm/Target/SubtargetFeature.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/Target/SubtargetFeature.h Wed Mar 05 23:15:18 2008 -0800
@@ -21,6 +21,7 @@
#include <string>
#include <vector>
#include <iosfwd>
+#include <cstring>
#include "llvm/Support/DataTypes.h"
namespace llvm {
diff -r ba4f1d4ee0d4 include/llvm/Target/TargetJITInfo.h
--- a/include/llvm/Target/TargetJITInfo.h Wed Mar 05 22:42:42 2008 -0800
+++ b/include/llvm/Target/TargetJITInfo.h Wed Mar 05 23:15:18 2008 -0800
@@ -17,8 +17,9 @@
#ifndef LLVM_TARGET_TARGETJITINFO_H
#define LLVM_TARGET_TARGETJITINFO_H
+#include <vector>
#include <cassert>
-#include <vector>
+#include "llvm/Support/DataTypes.h"
namespace llvm {
class Function;
diff -r ba4f1d4ee0d4 lib/Analysis/Analysis.cpp
--- a/lib/Analysis/Analysis.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Analysis/Analysis.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -10,6 +10,7 @@
#include "llvm-c/Analysis.h"
#include "llvm/Analysis/Verifier.h"
#include <fstream>
+#include <cstring>
using namespace llvm;
diff -r ba4f1d4ee0d4 lib/Analysis/IPA/Andersens.cpp
--- a/lib/Analysis/IPA/Andersens.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Analysis/IPA/Andersens.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -139,7 +139,7 @@
Constraint(ConstraintType Ty, unsigned D, unsigned S, unsigned O = 0)
: Type(Ty), Dest(D), Src(S), Offset(O) {
- assert(Offset == 0 || Ty != AddressOf &&
+ assert((Offset == 0 || Ty != AddressOf) &&
"Offset is illegal on addressof constraints");
}
@@ -1931,7 +1931,7 @@
C.Src = FindEquivalentNode(RHSNode, RHSLabel);
C.Dest = FindEquivalentNode(FindNode(LHSNode), LHSLabel);
- if (C.Src == C.Dest && C.Type == Constraint::Copy
+ if ((C.Src == C.Dest && C.Type == Constraint::Copy)
|| Seen.count(C))
continue;
diff -r ba4f1d4ee0d4 lib/Analysis/IPA/GlobalsModRef.cpp
--- a/lib/Analysis/IPA/GlobalsModRef.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Analysis/IPA/GlobalsModRef.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -115,11 +115,12 @@
/// case the most generic behavior of this function should be returned.
virtual ModRefBehavior getModRefBehavior(Function *F, CallSite CS,
std::vector<PointerAccessInfo> *Info) {
- if (FunctionRecord *FR = getFunctionInfo(F))
+ if (FunctionRecord *FR = getFunctionInfo(F)) {
if (FR->FunctionEffect == 0)
return DoesNotAccessMemory;
else if ((FR->FunctionEffect & Mod) == 0)
return OnlyReadsMemory;
+ }
return AliasAnalysis::getModRefBehavior(F, CS, Info);
}
diff -r ba4f1d4ee0d4 lib/Analysis/ScalarEvolution.cpp
--- a/lib/Analysis/ScalarEvolution.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Analysis/ScalarEvolution.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -1994,13 +1994,14 @@
Instruction *I = dyn_cast<Instruction>(V);
if (I == 0 || !L->contains(I->getParent())) return 0;
- if (PHINode *PN = dyn_cast<PHINode>(I))
+ if (PHINode *PN = dyn_cast<PHINode>(I)) {
if (L->getHeader() == I->getParent())
return PN;
else
// We don't currently keep track of the control flow needed to evaluate
// PHIs, so we cannot handle PHIs inside of loops.
return 0;
+ }
// If we won't be able to constant fold this expression even if the operands
// are constants, return early.
diff -r ba4f1d4ee0d4 lib/Archive/Archive.cpp
--- a/lib/Archive/Archive.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Archive/Archive.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -18,6 +18,8 @@
#include "llvm/Module.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/System/Process.h"
+#include <memory>
+#include <cstring>
using namespace llvm;
// getMemberSize - compute the actual physical size of the file member as seen
diff -r ba4f1d4ee0d4 lib/Archive/ArchiveInternals.h
--- a/lib/Archive/ArchiveInternals.h Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Archive/ArchiveInternals.h Wed Mar 05 23:15:18 2008 -0800
@@ -17,6 +17,8 @@
#include "llvm/Bitcode/Archive.h"
#include "llvm/System/TimeValue.h"
#include "llvm/ADT/StringExtras.h"
+
+#include <cstring>
#define ARFILE_MAGIC "!<arch>\n" ///< magic string
#define ARFILE_MAGIC_LEN (sizeof(ARFILE_MAGIC)-1) ///< length of magic string
diff -r ba4f1d4ee0d4 lib/AsmParser/LLLexer.cpp
--- a/lib/AsmParser/LLLexer.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/AsmParser/LLLexer.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -18,6 +18,8 @@
#include <list>
#include "llvmAsmParser.h"
+
+#include <cstring>
using namespace llvm;
//===----------------------------------------------------------------------===//
diff -r ba4f1d4ee0d4 lib/AsmParser/Parser.cpp
--- a/lib/AsmParser/Parser.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/AsmParser/Parser.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -14,6 +14,7 @@
#include "ParserInternals.h"
#include "llvm/Module.h"
#include "llvm/Support/MemoryBuffer.h"
+#include <cstring>
using namespace llvm;
diff -r ba4f1d4ee0d4 lib/Bitcode/Reader/BitReader.cpp
--- a/lib/Bitcode/Reader/BitReader.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Bitcode/Reader/BitReader.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -11,6 +11,7 @@
#include "llvm/Bitcode/ReaderWriter.h"
#include "llvm/Support/MemoryBuffer.h"
#include <string>
+#include <cstring>
using namespace llvm;
diff -r ba4f1d4ee0d4 lib/CodeGen/MachOWriter.cpp
--- a/lib/CodeGen/MachOWriter.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/CodeGen/MachOWriter.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -38,6 +38,7 @@
#include "llvm/Support/OutputBuffer.h"
#include "llvm/Support/Streams.h"
#include <algorithm>
+#include <cstring>
using namespace llvm;
/// AddMachOWriter - Concrete function to add the Mach-O writer to the function
diff -r ba4f1d4ee0d4 lib/ExecutionEngine/ExecutionEngine.cpp
--- a/lib/ExecutionEngine/ExecutionEngine.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/ExecutionEngine/ExecutionEngine.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -26,7 +26,8 @@
#include "llvm/System/DynamicLibrary.h"
#include "llvm/System/Host.h"
#include "llvm/Target/TargetData.h"
-#include <math.h>
+#include <cmath>
+#include <cstring>
using namespace llvm;
STATISTIC(NumInitBytes, "Number of bytes of global vars initialized");
diff -r ba4f1d4ee0d4 lib/ExecutionEngine/ExecutionEngineBindings.cpp
--- a/lib/ExecutionEngine/ExecutionEngineBindings.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/ExecutionEngine/ExecutionEngineBindings.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -15,6 +15,7 @@
#include "llvm-c/ExecutionEngine.h"
#include "llvm/ExecutionEngine/GenericValue.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h"
+#include <cstring>
using namespace llvm;
diff -r ba4f1d4ee0d4 lib/ExecutionEngine/Interpreter/Execution.cpp
--- a/lib/ExecutionEngine/Interpreter/Execution.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/ExecutionEngine/Interpreter/Execution.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -23,8 +23,9 @@
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
+#include <algorithm>
#include <cmath>
-#include <algorithm>
+#include <cstring>
using namespace llvm;
STATISTIC(NumDynamicInsts, "Number of dynamic instructions executed");
diff -r ba4f1d4ee0d4 lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
--- a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -29,6 +29,7 @@
#include <csignal>
#include <map>
#include <cmath>
+#include <cstring>
#ifdef __linux__
#include <cxxabi.h>
diff -r ba4f1d4ee0d4 lib/ExecutionEngine/Interpreter/Interpreter.cpp
--- a/lib/ExecutionEngine/Interpreter/Interpreter.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/ExecutionEngine/Interpreter/Interpreter.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -18,6 +18,7 @@
#include "llvm/DerivedTypes.h"
#include "llvm/Module.h"
#include "llvm/ModuleProvider.h"
+#include <cstring>
using namespace llvm;
static struct RegisterInterp {
diff -r ba4f1d4ee0d4 lib/ExecutionEngine/JIT/JITMemoryManager.cpp
--- a/lib/ExecutionEngine/JIT/JITMemoryManager.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/ExecutionEngine/JIT/JITMemoryManager.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -17,6 +17,8 @@
#include <map>
#include <vector>
#include <cassert>
+#include <cstdlib>
+#include <cstring>
using namespace llvm;
diff -r ba4f1d4ee0d4 lib/Support/CommandLine.cpp
--- a/lib/Support/CommandLine.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Support/CommandLine.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -29,6 +29,7 @@
#include <cstdlib>
#include <cerrno>
#include <cstring>
+#include <climits>
using namespace llvm;
using namespace cl;
diff -r ba4f1d4ee0d4 lib/Support/FileUtilities.cpp
--- a/lib/Support/FileUtilities.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Support/FileUtilities.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -16,6 +16,7 @@
#include "llvm/System/Path.h"
#include "llvm/System/MappedFile.h"
#include "llvm/ADT/StringExtras.h"
+#include <cstdlib>
#include <cstring>
#include <cctype>
using namespace llvm;
diff -r ba4f1d4ee0d4 lib/Support/FoldingSet.cpp
--- a/lib/Support/FoldingSet.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Support/FoldingSet.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -18,6 +18,7 @@
#include "llvm/ADT/APFloat.h"
#include "llvm/Support/MathExtras.h"
#include <cassert>
+#include <cstring>
using namespace llvm;
//===----------------------------------------------------------------------===//
diff -r ba4f1d4ee0d4 lib/Support/Statistic.cpp
--- a/lib/Support/Statistic.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Support/Statistic.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -28,6 +28,7 @@
#include "llvm/ADT/StringExtras.h"
#include <algorithm>
#include <ostream>
+#include <cstring>
using namespace llvm;
// GetLibSupportInfoOutputFile - Return a file stream to print our output on.
diff -r ba4f1d4ee0d4 lib/Support/StringExtras.cpp
--- a/lib/Support/StringExtras.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Support/StringExtras.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -12,6 +12,7 @@
//===----------------------------------------------------------------------===//
#include "llvm/ADT/StringExtras.h"
+#include <cstring>
using namespace llvm;
/// getToken - This function extracts one token from source, ignoring any
diff -r ba4f1d4ee0d4 lib/Target/Sparc/SparcAsmPrinter.cpp
--- a/lib/Target/Sparc/SparcAsmPrinter.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Target/Sparc/SparcAsmPrinter.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -31,6 +31,7 @@
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/MathExtras.h"
#include <cctype>
+#include <cstring>
using namespace llvm;
STATISTIC(EmittedInsts, "Number of machine instrs printed");
diff -r ba4f1d4ee0d4 lib/Target/X86/X86JITInfo.cpp
--- a/lib/Target/X86/X86JITInfo.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Target/X86/X86JITInfo.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -18,6 +18,7 @@
#include "llvm/CodeGen/MachineCodeEmitter.h"
#include "llvm/Config/alloca.h"
#include <cstdlib>
+#include <cstring>
using namespace llvm;
#ifdef _MSC_VER
diff -r ba4f1d4ee0d4 lib/Transforms/IPO/SimplifyLibCalls.cpp
--- a/lib/Transforms/IPO/SimplifyLibCalls.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Transforms/IPO/SimplifyLibCalls.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -30,6 +30,7 @@
#include "llvm/Support/Debug.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Transforms/IPO.h"
+#include <cstring>
using namespace llvm;
/// This statistic keeps track of the total number of library calls that have
diff -r ba4f1d4ee0d4 lib/Transforms/Scalar/LoopUnroll.cpp
--- a/lib/Transforms/Scalar/LoopUnroll.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/Transforms/Scalar/LoopUnroll.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -36,8 +36,9 @@
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/IntrinsicInst.h"
+#include <algorithm>
+#include <climits>
#include <cstdio>
-#include <algorithm>
using namespace llvm;
STATISTIC(NumCompletelyUnrolled, "Number of loops completely unrolled");
diff -r ba4f1d4ee0d4 lib/VMCore/AutoUpgrade.cpp
--- a/lib/VMCore/AutoUpgrade.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/VMCore/AutoUpgrade.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -18,6 +18,7 @@
#include "llvm/Instructions.h"
#include "llvm/ParameterAttributes.h"
#include "llvm/Intrinsics.h"
+#include <cstring>
using namespace llvm;
diff -r ba4f1d4ee0d4 lib/VMCore/ConstantFold.cpp
--- a/lib/VMCore/ConstantFold.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/VMCore/ConstantFold.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -658,25 +658,28 @@
case Instruction::Xor:
return ConstantInt::get(C1V ^ C2V);
case Instruction::Shl:
- if (uint32_t shiftAmt = C2V.getZExtValue())
+ if (uint32_t shiftAmt = C2V.getZExtValue()) {
if (shiftAmt < C1V.getBitWidth())
return ConstantInt::get(C1V.shl(shiftAmt));
else
return UndefValue::get(C1->getType()); // too big shift is undef
+ }
return const_cast<ConstantInt*>(CI1); // Zero shift is identity
case Instruction::LShr:
- if (uint32_t shiftAmt = C2V.getZExtValue())
+ if (uint32_t shiftAmt = C2V.getZExtValue()) {
if (shiftAmt < C1V.getBitWidth())
return ConstantInt::get(C1V.lshr(shiftAmt));
else
return UndefValue::get(C1->getType()); // too big shift is undef
+ }
return const_cast<ConstantInt*>(CI1); // Zero shift is identity
case Instruction::AShr:
- if (uint32_t shiftAmt = C2V.getZExtValue())
+ if (uint32_t shiftAmt = C2V.getZExtValue()) {
if (shiftAmt < C1V.getBitWidth())
return ConstantInt::get(C1V.ashr(shiftAmt));
else
return UndefValue::get(C1->getType()); // too big shift is undef
+ }
return const_cast<ConstantInt*>(CI1); // Zero shift is identity
}
}
@@ -1081,18 +1084,20 @@
// Ok, we ran out of things they have in common. If any leftovers
// are non-zero then we have a difference, otherwise we are equal.
for (; i < CE1->getNumOperands(); ++i)
- if (!CE1->getOperand(i)->isNullValue())
+ if (!CE1->getOperand(i)->isNullValue()) {
if (isa<ConstantInt>(CE1->getOperand(i)))
return isSigned ? ICmpInst::ICMP_SGT : ICmpInst::ICMP_UGT;
else
return ICmpInst::BAD_ICMP_PREDICATE; // Might be equal.
+ }
for (; i < CE2->getNumOperands(); ++i)
- if (!CE2->getOperand(i)->isNullValue())
+ if (!CE2->getOperand(i)->isNullValue()) {
if (isa<ConstantInt>(CE2->getOperand(i)))
return isSigned ? ICmpInst::ICMP_SLT : ICmpInst::ICMP_ULT;
else
return ICmpInst::BAD_ICMP_PREDICATE; // Might be equal.
+ }
return ICmpInst::ICMP_EQ;
}
}
@@ -1121,20 +1126,22 @@
if (C1->isNullValue()) {
if (const GlobalValue *GV = dyn_cast<GlobalValue>(C2))
// Don't try to evaluate aliases. External weak GV can be null.
- if (!isa<GlobalAlias>(GV) && !GV->hasExternalWeakLinkage())
+ if (!isa<GlobalAlias>(GV) && !GV->hasExternalWeakLinkage()) {
if (pred == ICmpInst::ICMP_EQ)
return ConstantInt::getFalse();
else if (pred == ICmpInst::ICMP_NE)
return ConstantInt::getTrue();
+ }
// icmp eq/ne(GV,null) -> false/true
} else if (C2->isNullValue()) {
if (const GlobalValue *GV = dyn_cast<GlobalValue>(C1))
// Don't try to evaluate aliases. External weak GV can be null.
- if (!isa<GlobalAlias>(GV) && !GV->hasExternalWeakLinkage())
+ if (!isa<GlobalAlias>(GV) && !GV->hasExternalWeakLinkage()) {
if (pred == ICmpInst::ICMP_EQ)
return ConstantInt::getFalse();
else if (pred == ICmpInst::ICMP_NE)
return ConstantInt::getTrue();
+ }
}
if (isa<ConstantInt>(C1) && isa<ConstantInt>(C2)) {
diff -r ba4f1d4ee0d4 lib/VMCore/Core.cpp
--- a/lib/VMCore/Core.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/VMCore/Core.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -22,6 +22,7 @@
#include "llvm/Support/MemoryBuffer.h"
#include <cassert>
#include <cstdlib>
+#include <cstring>
using namespace llvm;
diff -r ba4f1d4ee0d4 lib/VMCore/Instructions.cpp
--- a/lib/VMCore/Instructions.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/VMCore/Instructions.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -182,11 +182,12 @@
///
Value *PHINode::hasConstantValue(bool AllowNonDominatingInstruction) const {
// If the PHI node only has one incoming value, eliminate the PHI node...
- if (getNumIncomingValues() == 1)
+ if (getNumIncomingValues() == 1) {
if (getIncomingValue(0) != this) // not X = phi X
return getIncomingValue(0);
else
return UndefValue::get(getType()); // Self cycle is dead.
+ }
// Otherwise if all of the incoming values are the same for the PHI, replace
// the PHI node with the incoming value.
@@ -194,13 +195,14 @@
Value *InVal = 0;
bool HasUndefInput = false;
for (unsigned i = 0, e = getNumIncomingValues(); i != e; ++i)
- if (isa<UndefValue>(getIncomingValue(i)))
+ if (isa<UndefValue>(getIncomingValue(i))) {
HasUndefInput = true;
- else if (getIncomingValue(i) != this) // Not the PHI node itself...
+ } else if (getIncomingValue(i) != this) { // Not the PHI node itself...
if (InVal && getIncomingValue(i) != InVal)
return 0; // Not the same, bail out.
else
InVal = getIncomingValue(i);
+ }
// The only case that could cause InVal to be null is if we have a PHI node
// that only has entries for itself. In this case, there is no entry into the
@@ -441,8 +443,8 @@
cast<FunctionType>(cast<PointerType>(Fn->getType())->getElementType());
FTy = FTy; // silence warning.
- assert((NumArgs == FTy->getNumParams()) ||
- (FTy->isVarArg() && NumArgs > FTy->getNumParams()) &&
+ assert(((NumArgs == FTy->getNumParams()) ||
+ (FTy->isVarArg() && NumArgs > FTy->getNumParams())) &&
"Calling a function with bad signature");
for (unsigned i = 0, e = NumArgs; i != e; i++) {
@@ -1027,12 +1029,13 @@
if (!isa<PointerType>(Ptr)) return 0; // Type isn't a pointer type!
// Handle the special case of the empty set index set...
- if (NumIdx == 0)
+ if (NumIdx == 0) {
if (AllowCompositeLeaf ||
cast<PointerType>(Ptr)->getElementType()->isFirstClassType())
return cast<PointerType>(Ptr)->getElementType();
else
return 0;
+ }
unsigned CurIdx = 0;
while (const CompositeType *CT = dyn_cast<CompositeType>(Ptr)) {
@@ -2319,7 +2322,7 @@
assert(Op0Ty == Op1Ty &&
"Both operands to ICmp instruction are not of the same type!");
// Check that the operands are the right type
- assert(Op0Ty->isInteger() || isa<PointerType>(Op0Ty) &&
+ assert((Op0Ty->isInteger() || isa<PointerType>(Op0Ty)) &&
"Invalid operand types for ICmp instruction");
return;
}
diff -r ba4f1d4ee0d4 lib/VMCore/Value.cpp
--- a/lib/VMCore/Value.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/lib/VMCore/Value.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -307,7 +307,7 @@
void User::replaceUsesOfWith(Value *From, Value *To) {
if (From == To) return; // Duh what?
- assert(!isa<Constant>(this) || isa<GlobalValue>(this) &&
+ assert((!isa<Constant>(this) || isa<GlobalValue>(this)) &&
"Cannot call User::replaceUsesofWith on a constant!");
for (unsigned i = 0, E = getNumOperands(); i != E; ++i)
diff -r ba4f1d4ee0d4 tools/llvm-db/Commands.cpp
--- a/tools/llvm-db/Commands.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/tools/llvm-db/Commands.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -21,6 +21,7 @@
#include "llvm/Support/FileUtilities.h"
#include "llvm/ADT/StringExtras.h"
#include <iostream>
+#include <cstdlib>
using namespace llvm;
/// getCurrentLanguage - Return the current source language that the user is
diff -r ba4f1d4ee0d4 tools/llvm-ld/llvm-ld.cpp
--- a/tools/llvm-ld/llvm-ld.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/tools/llvm-ld/llvm-ld.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -38,6 +38,7 @@
#include "llvm/System/Signals.h"
#include <fstream>
#include <memory>
+#include <cstring>
using namespace llvm;
// Input/Output Options
diff -r ba4f1d4ee0d4 tools/llvm-upgrade/UpgradeInternals.h
--- a/tools/llvm-upgrade/UpgradeInternals.h Wed Mar 05 22:42:42 2008 -0800
+++ b/tools/llvm-upgrade/UpgradeInternals.h Wed Mar 05 23:15:18 2008 -0800
@@ -22,7 +22,7 @@
#include "llvm/ADT/StringExtras.h"
#include <list>
#include <iostream>
-
+#include <cstring>
// Global variables exported from the lexer.
extern int yydebug;
diff -r ba4f1d4ee0d4 tools/llvmc/llvmc.cpp
--- a/tools/llvmc/llvmc.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/tools/llvmc/llvmc.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -21,6 +21,7 @@
#include "llvm/Support/ManagedStatic.h"
#include "llvm/System/Signals.h"
#include <iostream>
+#include <cstring>
using namespace llvm;
//===----------------------------------------------------------------------===//
diff -r ba4f1d4ee0d4 utils/PerfectShuffle/PerfectShuffle.cpp
--- a/utils/PerfectShuffle/PerfectShuffle.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/utils/PerfectShuffle/PerfectShuffle.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -17,7 +17,7 @@
#include <iostream>
#include <vector>
#include <cassert>
-
+#include <cstdlib>
struct Operator;
// Masks are 4-nibble hex numbers. Values 0-7 in any nibble means that it takes
diff -r ba4f1d4ee0d4 utils/TableGen/AsmWriterEmitter.cpp
--- a/utils/TableGen/AsmWriterEmitter.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/utils/TableGen/AsmWriterEmitter.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -242,11 +242,12 @@
unsigned MismatchOperand = ~0U;
for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
- if (Operands[i] != Other.Operands[i])
+ if (Operands[i] != Other.Operands[i]) {
if (MismatchOperand != ~0U) // Already have one mismatch?
return ~1U;
else
MismatchOperand = i;
+ }
}
return MismatchOperand;
}
diff -r ba4f1d4ee0d4 utils/TableGen/CodeGenDAGPatterns.cpp
--- a/utils/TableGen/CodeGenDAGPatterns.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/utils/TableGen/CodeGenDAGPatterns.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -1318,14 +1318,14 @@
while (TPN->ApplyTypeConstraints(P, false))
/* Resolve all types */;
- if (TPN->ContainsUnresolvedType())
+ if (TPN->ContainsUnresolvedType()) {
if (iter == 0)
throw "Value #" + utostr(i) + " of PredicateOperand '" +
DefaultOps[iter][i]->getName() + "' doesn't have a concrete type!";
else
throw "Value #" + utostr(i) + " of OptionalDefOperand '" +
DefaultOps[iter][i]->getName() + "' doesn't have a concrete type!";
-
+ }
DefaultOpInfo.DefaultOps.push_back(TPN);
}
diff -r ba4f1d4ee0d4 utils/TableGen/CodeGenRegisters.h
--- a/utils/TableGen/CodeGenRegisters.h Wed Mar 05 22:42:42 2008 -0800
+++ b/utils/TableGen/CodeGenRegisters.h Wed Mar 05 23:15:18 2008 -0800
@@ -15,9 +15,10 @@
#ifndef CODEGEN_REGISTERS_H
#define CODEGEN_REGISTERS_H
+#include "llvm/CodeGen/ValueTypes.h"
#include <string>
#include <vector>
-#include "llvm/CodeGen/ValueTypes.h"
+#include <cstdlib>
namespace llvm {
class Record;
diff -r ba4f1d4ee0d4 utils/TableGen/DAGISelEmitter.cpp
--- a/utils/TableGen/DAGISelEmitter.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/utils/TableGen/DAGISelEmitter.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -1059,7 +1059,7 @@
Code += "), 0";
emitCode(Code2 + Code + ");");
- if (NodeHasChain)
+ if (NodeHasChain) {
// Remember which op produces the chain.
if (!isRoot)
emitCode(ChainName + " = SDOperand(" + NodeName +
@@ -1067,6 +1067,7 @@
else
emitCode(ChainName + " = SDOperand(" + NodeName +
", " + utostr(NumResults+NumDstRegs) + ");");
+ }
if (!isRoot) {
NodeOps.push_back("Tmp" + utostr(ResNo));
diff -r ba4f1d4ee0d4 utils/TableGen/TGLexer.cpp
--- a/utils/TableGen/TGLexer.cpp Wed Mar 05 22:42:42 2008 -0800
+++ b/utils/TableGen/TGLexer.cpp Wed Mar 05 23:15:18 2008 -0800
@@ -17,6 +17,8 @@
#include <ostream>
#include "llvm/Config/config.h"
#include <cctype>
+#include <cstdlib>
+#include <cstring>
using namespace llvm;
TGLexer::TGLexer(MemoryBuffer *StartBuf) : CurLineNo(1), CurBuf(StartBuf) {

View File

@ -14,7 +14,7 @@
Name: llvm Name: llvm
Version: 2.2 Version: 2.2
Release: 2%{?dist} Release: 3%{?dist}
Summary: The Low Level Virtual Machine Summary: The Low Level Virtual Machine
License: NCSA License: NCSA
Group: Development/Languages Group: Development/Languages
@ -25,6 +25,7 @@ Source1: http://llvm.org/releases/%{version}/llvm-gcc%{lgcc_version}-%{version}.
%endif %endif
Patch0: llvm-2.1-fix-sed.patch Patch0: llvm-2.1-fix-sed.patch
Patch1: llvm-2.2-gcc43.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: bison BuildRequires: bison
@ -113,6 +114,7 @@ API documentation for the LLVM compiler infrastructure.
%setup -q -n llvm-%{version} %{?_with_gcc:-a1} %setup -q -n llvm-%{version} %{?_with_gcc:-a1}
%patch0 -p1 -b .fix-sed %patch0 -p1 -b .fix-sed
%patch1 -p1 -b .gcc43
%build %build
# We're not building a debuginfo package yet, because some generated # We're not building a debuginfo package yet, because some generated
@ -287,6 +289,9 @@ rm -rf %{buildroot}
%changelog %changelog
* Wed Mar 5 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.2-3
- Fix compilation problems with gcc 4.3
* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.2-2 * Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.2-2
- Autorebuild for GCC 4.3 - Autorebuild for GCC 4.3