Fix the Win32 VS2008 build:

- Make type declarations match the struct/class keyword of the definition.
 - Move AddSignalHandler into the namespace where it belongs.
 - Correctly call functions from template base.
 - Some other small changes.
With this patch, LLVM and Clang should build properly and with far less noise under VS2008.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67347 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Sebastian Redl 2009-03-19 23:26:52 +00:00
parent a24752ff43
commit 48fe63526e
9 changed files with 24 additions and 17 deletions

View File

@ -145,7 +145,7 @@ if( MSVC )
add_definitions( -D_SCL_SECURE_NO_WARNINGS -DCRT_NONSTDC_NO_WARNINGS ) add_definitions( -D_SCL_SECURE_NO_WARNINGS -DCRT_NONSTDC_NO_WARNINGS )
add_definitions( -D_SCL_SECURE_NO_DEPRECATE ) add_definitions( -D_SCL_SECURE_NO_DEPRECATE )
add_definitions( -wd4146 -wd4503 -wd4996 -wd4800 -wd4244 -wd4624 ) add_definitions( -wd4146 -wd4503 -wd4996 -wd4800 -wd4244 -wd4624 )
add_definitions( -wd4355 -wd4715 ) add_definitions( -wd4355 -wd4715 -wd4180 -wd4345 -wd4224 )
endif( MSVC ) endif( MSVC )
include_directories( ${LLVM_BINARY_DIR}/include ${LLVM_MAIN_INCLUDE_DIR}) include_directories( ${LLVM_BINARY_DIR}/include ${LLVM_MAIN_INCLUDE_DIR})

View File

@ -23,7 +23,7 @@
#include "llvm/ADT/PointerIntPair.h" #include "llvm/ADT/PointerIntPair.h"
namespace llvm { namespace llvm {
struct SUnit; class SUnit;
class MachineConstantPool; class MachineConstantPool;
class MachineFunction; class MachineFunction;
class MachineModuleInfo; class MachineModuleInfo;

View File

@ -833,8 +833,8 @@ class opt : public Option,
typename ParserClass::parser_data_type(); typename ParserClass::parser_data_type();
if (Parser.parse(*this, ArgName, Arg, Val)) if (Parser.parse(*this, ArgName, Arg, Val))
return true; // Parse error! return true; // Parse error!
setValue(Val); this->setValue(Val);
setPosition(pos); this->setPosition(pos);
return false; return false;
} }

View File

@ -84,6 +84,10 @@ public:
void operator delete(void*, unsigned) { void operator delete(void*, unsigned) {
assert(0 && "Constructor throws?"); assert(0 && "Constructor throws?");
} }
/// placement delete - required by std, but never called.
void operator delete(void*, unsigned, bool) {
assert(0 && "Constructor throws?");
}
protected: protected:
template <int Idx, typename U> static Use &OpFrom(const U *that) { template <int Idx, typename U> static Use &OpFrom(const U *that) {
return Idx < 0 return Idx < 0

View File

@ -16,6 +16,7 @@ add_llvm_library(LLVMAnalysis
IntervalPartition.cpp IntervalPartition.cpp
LibCallAliasAnalysis.cpp LibCallAliasAnalysis.cpp
LibCallSemantics.cpp LibCallSemantics.cpp
LiveValues.cpp
LoopInfo.cpp LoopInfo.cpp
LoopPass.cpp LoopPass.cpp
LoopVR.cpp LoopVR.cpp

View File

@ -2042,7 +2042,7 @@ addIntervalsForSpills(const LiveInterval &li,
if (CanFold && !Ops.empty()) { if (CanFold && !Ops.empty()) {
if (tryFoldMemoryOperand(MI, vrm, NULL, index, Ops, true, Slot,VReg)){ if (tryFoldMemoryOperand(MI, vrm, NULL, index, Ops, true, Slot,VReg)){
Folded = true; Folded = true;
if (FoundUse > 0) { if (FoundUse) {
// Also folded uses, do not issue a load. // Also folded uses, do not issue a load.
eraseRestoreInfo(Id, index, VReg, RestoreMBBs, RestoreIdxes); eraseRestoreInfo(Id, index, VReg, RestoreMBBs, RestoreIdxes);
nI.removeRange(getLoadIndex(index), getUseIndex(index)+1); nI.removeRange(getLoadIndex(index), getUseIndex(index)+1);

View File

@ -39,5 +39,5 @@ int sys::AlarmStatus() {
extern "C" void __stdcall Sleep(unsigned long); extern "C" void __stdcall Sleep(unsigned long);
void sys::Sleep(unsigned n) { void sys::Sleep(unsigned n) {
Sleep(n*1000); ::Sleep(n*1000);
} }

View File

@ -14,6 +14,7 @@
#include "Win32.h" #include "Win32.h"
#include <stdio.h> #include <stdio.h>
#include <vector> #include <vector>
#include <algorithm>
#ifdef __MINGW32__ #ifdef __MINGW32__
#include <imagehlp.h> #include <imagehlp.h>
@ -111,6 +112,17 @@ void sys::SetInterruptFunction(void (*IF)()) {
InterruptFunction = IF; InterruptFunction = IF;
LeaveCriticalSection(&CriticalSection); LeaveCriticalSection(&CriticalSection);
} }
/// AddSignalHandler - Add a function to be called when a signal is delivered
/// to the process. The handler can have a cookie passed to it to identify
/// what instance of the handler it is.
void sys::AddSignalHandler(void (*FnPtr)(void *), void *Cookie) {
if (CallBacksToRun == 0)
CallBacksToRun = new std::vector<std::pair<void(*)(void*), void*> >();
CallBacksToRun->push_back(std::make_pair(FnPtr, Cookie));
RegisterHandler();
}
} }
static void Cleanup() { static void Cleanup() {
@ -256,13 +268,3 @@ static BOOL WINAPI LLVMConsoleCtrlHandler(DWORD dwCtrlType) {
return FALSE; return FALSE;
} }
/// AddSignalHandler - Add a function to be called when a signal is delivered
/// to the process. The handler can have a cookie passed to it to identify
/// what instance of the handler it is.
void llvm::sys::AddSignalHandler(void (*FnPtr)(void *), void *Cookie) {
if (CallBacksToRun == 0)
CallBacksToRun = new std::vector<std::pair<void(*)(void*), void*> >();
CallBacksToRun->push_back(std::make_pair(FnPtr, Cookie));
RegisterHandler();
}

View File

@ -24,7 +24,7 @@ namespace llvm {
struct RecTy; struct RecTy;
struct Init; struct Init;
struct MultiClass; struct MultiClass;
class SubClassReference; struct SubClassReference;
struct LetRecord { struct LetRecord {
std::string Name; std::string Name;