Unbreak the build on win32.
Cleanup some warning.

Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.

Only tested with VS2008. hope it does not break anything. feel free to revert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64554 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h
index 5113d5f..164600e 100644
--- a/include/llvm/Analysis/DebugInfo.h
+++ b/include/llvm/Analysis/DebugInfo.h
@@ -27,8 +27,8 @@
   class Module;
   class Type;
   class Value;
-  class DbgStopPointInst;
-  class DbgDeclareInst;
+  struct DbgStopPointInst;
+  struct DbgDeclareInst;
   class Instruction;
 
   class DIDescriptor {
diff --git a/include/llvm/CodeGen/ScheduleDAG.h b/include/llvm/CodeGen/ScheduleDAG.h
index 38b437b..685dc76 100644
--- a/include/llvm/CodeGen/ScheduleDAG.h
+++ b/include/llvm/CodeGen/ScheduleDAG.h
@@ -217,7 +217,7 @@
   };
 
   /// SUnit - Scheduling unit. This is a node in the scheduling DAG.
-  struct SUnit {
+  class SUnit {
   private:
     SDNode *Node;                       // Representative node.
     MachineInstr *Instr;                // Alternatively, a MachineInstr.
diff --git a/include/llvm/Transforms/Utils/Local.h b/include/llvm/Transforms/Utils/Local.h
index 7338912..36c13f4 100644
--- a/include/llvm/Transforms/Utils/Local.h
+++ b/include/llvm/Transforms/Utils/Local.h
@@ -25,7 +25,7 @@
 class AllocaInst;
 class ConstantExpr;
 class TargetData;
-class DbgInfoIntrinsic;
+struct DbgInfoIntrinsic;
 
 template<typename T> class SmallVectorImpl;
   
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
index 47335d3..6139638 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
@@ -4718,8 +4718,9 @@
 namespace llvm {
 /// AsmOperandInfo - This contains information for each constraint that we are
 /// lowering.
-struct VISIBILITY_HIDDEN SDISelAsmOperandInfo :
+class VISIBILITY_HIDDEN SDISelAsmOperandInfo :
     public TargetLowering::AsmOperandInfo {
+public:
   /// CallOperand - If this is the result output operand or a clobber
   /// this is null, otherwise it is the incoming operand to the CallInst.
   /// This gets modified as the asm is processed.
diff --git a/lib/Support/APFloat.cpp b/lib/Support/APFloat.cpp
index d8d414d..e7be299 100644
--- a/lib/Support/APFloat.cpp
+++ b/lib/Support/APFloat.cpp
@@ -1239,7 +1239,7 @@
   case convolve(fcInfinity, fcInfinity):
     /* Differently signed infinities can only be validly
        subtracted.  */
-    if((sign ^ rhs.sign) != subtract) {
+    if(((sign ^ rhs.sign)!=0) != subtract) {
       makeNaN();
       return opInvalidOp;
     }
diff --git a/lib/System/Win32/Alarm.inc b/lib/System/Win32/Alarm.inc
index dca9e08..c413b09 100644
--- a/lib/System/Win32/Alarm.inc
+++ b/lib/System/Win32/Alarm.inc
@@ -36,7 +36,7 @@
 }
 
 // Don't pull in all of the Windows headers.
-extern "C" _stdcall void Sleep(unsigned long);
+extern "C"  void __stdcall Sleep(unsigned long);
 
 void sys::Sleep(unsigned n) {
   Sleep(n*1000);
diff --git a/utils/TableGen/TGParser.cpp b/utils/TableGen/TGParser.cpp
index 4ff108d..1ea6b98 100644
--- a/utils/TableGen/TGParser.cpp
+++ b/utils/TableGen/TGParser.cpp
@@ -124,7 +124,7 @@
 
 /// AddSubClass - Add SubClass as a subclass to CurRec, resolving its template
 /// args as SubClass's template arguments.
-bool TGParser::AddSubClass(Record *CurRec, class SubClassReference &SubClass) {
+bool TGParser::AddSubClass(Record *CurRec, SubClassReference &SubClass) {
   Record *SC = SubClass.Rec;
   // Add all of the values in the subclass into the current class.
   const std::vector<RecordVal> &Vals = SC->getValues();
diff --git a/utils/TableGen/TGParser.h b/utils/TableGen/TGParser.h
index fd33aec..edbc4c1 100644
--- a/utils/TableGen/TGParser.h
+++ b/utils/TableGen/TGParser.h
@@ -23,7 +23,7 @@
   struct RecTy;
   struct Init;
   struct MultiClass;
-  struct SubClassReference;
+  class SubClassReference;
   
   struct LetRecord {
     std::string Name;
@@ -66,7 +66,7 @@
   bool AddValue(Record *TheRec, LocTy Loc, const RecordVal &RV);
   bool SetValue(Record *TheRec, LocTy Loc, const std::string &ValName, 
                 const std::vector<unsigned> &BitList, Init *V);
-  bool AddSubClass(Record *Rec, class SubClassReference &SubClass);
+  bool AddSubClass(Record *Rec, SubClassReference &SubClass);
 
 private:  // Parser methods.
   bool ParseObjectList();