For PR387:

Close out this long standing bug by removing the remaining overloaded
virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29934 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2006-08-28 01:02:49 +00:00
parent dc87725902
commit 3a9ec2463d
8 changed files with 27 additions and 5 deletions

View File

@ -254,7 +254,7 @@ else
C.Flags += -D_DEBUG
endif
CXX.Flags += $(CXXFLAGS)
CXX.Flags += $(CXXFLAGS) -Woverloaded-virtual
C.Flags += $(CFLAGS)
CPP.BaseFlags += $(CPPFLAGS)
LD.Flags += $(LDFLAGS)

View File

@ -43,6 +43,10 @@ std::ostream &WriteAsOperand(std::ostream &, const Value *, bool PrintTy = true,
std::ostream &WriteAsOperand(std::ostream&, const Type*, bool PrintTy = true,
bool PrintName = true, const Module* Context = 0);
#ifndef NDEBUG
void dumpType(const Type* Ty);
void dumpValue(const Value* Val);
#endif
} // End llvm namespace
#endif

View File

@ -65,7 +65,8 @@ namespace {
AliasResult alias(const Value *V1, unsigned V1Size,
const Value *V2, unsigned V2Size);
ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
virtual ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
virtual ModRefResult getModRefInfo(CallSite CS1, CallSite CS2);
private:
void ResolveFunctionCall(Function *F, const DSCallSite &Call,
@ -266,3 +267,9 @@ Steens::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
return (ModRefResult)(Result & AliasAnalysis::getModRefInfo(CS, P, Size));
}
AliasAnalysis::ModRefResult
Steens::getModRefInfo(CallSite CS1, CallSite CS2)
{
return AliasAnalysis::getModRefInfo(CS1,CS2);
}

View File

@ -236,7 +236,8 @@ namespace {
//
AliasResult alias(const Value *V1, unsigned V1Size,
const Value *V2, unsigned V2Size);
ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
virtual ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
virtual ModRefResult getModRefInfo(CallSite CS1, CallSite CS2);
void getMustAliases(Value *P, std::vector<Value*> &RetVals);
bool pointsToConstantMemory(const Value *P);
@ -387,6 +388,11 @@ Andersens::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
return AliasAnalysis::getModRefInfo(CS, P, Size);
}
AliasAnalysis::ModRefResult
Andersens::getModRefInfo(CallSite CS1, CallSite CS2) {
return AliasAnalysis::getModRefInfo(CS1,CS2);
}
/// getMustAlias - We can provide must alias information if we know that a
/// pointer can only point to a specific function or the null pointer.
/// Unfortunately we cannot determine must-alias information for global

View File

@ -2691,3 +2691,7 @@ bool PPCTargetLowering::isLegalAddressImmediate(int64_t V) const {
// PPC allows a sign-extended 16-bit immediate field.
return (V > -(1 << 16) && V < (1 << 16)-1);
}
bool PPCTargetLowering::isLegalAddressImmediate(llvm::GlobalValue* GV) const {
return TargetLowering::isLegalAddressImmediate(GV);
}

View File

@ -199,6 +199,7 @@ namespace llvm {
/// isLegalAddressImmediate - Return true if the integer value can be used
/// as the offset of the target addressing mode.
virtual bool isLegalAddressImmediate(int64_t V) const;
virtual bool isLegalAddressImmediate(llvm::GlobalValue*) const;
};
}

View File

@ -1081,8 +1081,7 @@ void AssemblyWriter::printInfoComment(const Value &V) {
}
}
/// printInstruction - This member is called for each Instruction in a function..
///
// This member is called for each Instruction in a function..
void AssemblyWriter::printInstruction(const Instruction &I) {
if (AnnotationWriter) AnnotationWriter->emitInstructionAnnot(&I, Out);

View File

@ -65,6 +65,7 @@ namespace {
}
void print(std::ostream &OS) const {}
void print(std::ostream &OS, const llvm::Module*) const {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<CallGraph>();