llvm-6502/include/llvm
Reid Kleckner 118a0659ab Explicitly request unsigned enum types when desired
The underlying type of all plain enums in MSVC is 'int', even if the
enumerator contains large 32-bit unsigned values or values greater than
UINT_MAX.  The only way to get a large or unsigned enum type is to
request it explicitly with the C++11 strong enum types feature.

However, since LLVM isn't C++11 yet, I had to add a conditional
LLVM_ENUM_INT_TYPE to Compiler.h to control its usage.

The motivating true positive for this change is compiling PointerIntPair
with MSVC for win64.  The PointerIntMask value is supposed to be pointer
sized value of all ones with some low zeros.  Instead, it's truncated to
32-bits!  We are only saved later because it is sign extended back in
the AND with int64_t, and we happen to want all ones.

This silences lots of -Wmicrosoft warnings during a clang self-host
targeting Windows.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191241 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-23 23:26:57 +00:00
..
ADT Explicitly request unsigned enum types when desired 2013-09-23 23:26:57 +00:00
Analysis Add function DominatorTree::getDescendants(). 2013-09-19 17:18:35 +00:00
Assembly
Bitcode
CodeGen Allow subtarget selection of the default MachineScheduler and document the interface. 2013-09-20 05:14:41 +00:00
Config [conf] Add config variable to disable crash related overrides. 2013-08-30 20:39:21 +00:00
DebugInfo llvm-dwarfdump/libDebugInfo support for type units 2013-09-23 22:44:47 +00:00
ExecutionEngine
IR Explicitly request unsigned enum types when desired 2013-09-23 23:26:57 +00:00
IRReader
MC Explicitly request unsigned enum types when desired 2013-09-23 23:26:57 +00:00
Object Explicitly request unsigned enum types when desired 2013-09-23 23:26:57 +00:00
Option Option parsing: support case-insensitive option matching. 2013-08-28 20:04:31 +00:00
Support Explicitly request unsigned enum types when desired 2013-09-23 23:26:57 +00:00
TableGen Move StringToOffsetTable into the TableGen include directory so I can use it in clang. 2013-08-29 05:09:55 +00:00
Target Add an instruction deprecation feature to TableGen. 2013-09-12 10:28:05 +00:00
Transforms Remove the long, long defunct IR block placement pass. 2013-09-14 09:28:14 +00:00
AutoUpgrade.h
CMakeLists.txt
DebugInfo.h Debug Info: move class definition of DIRef. 2013-09-11 18:55:55 +00:00
DIBuilder.h Revert r190269 to fix dragonegg failures. 2013-09-08 06:02:56 +00:00
GVMaterializer.h
InitializePasses.h Remove the long, long defunct IR block placement pass. 2013-09-14 09:28:14 +00:00
InstVisitor.h
LinkAllIR.h
LinkAllPasses.h Remove the long, long defunct IR block placement pass. 2013-09-14 09:28:14 +00:00
Linker.h
Pass.h
PassAnalysisSupport.h
PassManager.h Revert "Encapsulate PassManager debug flags to avoid static init and cxa_exit." 2013-09-19 06:02:43 +00:00
PassManagers.h
PassRegistry.h
PassSupport.h