1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/include/llvm/ADT
Reid Kleckner 333fd129ac 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.

llvm-svn: 191241
2013-09-23 23:26:57 +00:00
..
APFloat.h [APFloat] Removed nextafter from missing operations since it is implemented in APFloat::next. 2013-07-27 21:49:19 +00:00
APInt.h APInt: Add a fast case for isAllOnesValue. 2013-06-15 11:32:09 +00:00
APSInt.h
ArrayRef.h isCharInSet refactoring. 2013-08-29 12:12:13 +00:00
BitVector.h BitVector: Do the right thing in all() when Size is a multiple of BITWORD_SIZE. 2013-06-07 15:14:31 +00:00
DAGDeltaAlgorithm.h
DeltaAlgorithm.h
DenseMap.h Add warn_unused_result to empty() on various containers. 2013-09-13 17:33:24 +00:00
DenseMapInfo.h
DenseSet.h
DepthFirstIterator.h
edit_distance.h
EquivalenceClasses.h
FoldingSet.h Avoid warnings about unused parameters that tend to come up a lot when 2013-06-10 12:09:30 +00:00
GraphTraits.h
Hashing.h
ilist_node.h
ilist.h Add warn_unused_result to empty() on various containers. 2013-09-13 17:33:24 +00:00
ImmutableIntervalMap.h
ImmutableList.h
ImmutableMap.h Add difference_type to ImmutableMap/Set iterators so they have a complete set of typedefs. 2013-08-16 21:55:56 +00:00
ImmutableSet.h Add difference_type to ImmutableMap/Set iterators so they have a complete set of typedefs. 2013-08-16 21:55:56 +00:00
IndexedMap.h
IntEqClasses.h
IntervalMap.h Fix -Wdocumentation warnings. 2013-07-28 23:43:28 +00:00
IntrusiveRefCntPtr.h
MapVector.h
None.h
Optional.h
OwningPtr.h
PackedVector.h
PointerIntPair.h Explicitly request unsigned enum types when desired 2013-09-23 23:26:57 +00:00
PointerUnion.h Basic unit tests for PointerUnion 2013-08-21 21:30:23 +00:00
PostOrderIterator.h
PriorityQueue.h
SCCIterator.h
ScopedHashTable.h
SetOperations.h
SetVector.h Make sure that pop_back_val() result is used. 2013-08-19 22:12:00 +00:00
SmallBitVector.h Sync SmallBitVector with BitVector. Add unit tests for the missing methods. 2013-07-11 21:59:16 +00:00
SmallPtrSet.h Add warn_unused_result to empty() on various containers. 2013-09-13 17:33:24 +00:00
SmallSet.h
SmallString.h
SmallVector.h Add warn_unused_result to empty() on various containers. 2013-09-13 17:33:24 +00:00
SparseBitVector.h Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros. 2013-05-24 22:23:49 +00:00
SparseMultiSet.h
SparseSet.h
Statistic.h
STLExtras.h Provide basic type safety for array_pod_sort comparators. 2013-09-22 14:09:50 +00:00
StringExtras.h Add a Python-like join function to merge a list of strings with a 2013-09-03 20:43:54 +00:00
StringMap.h Disable the StringMapEntry copy constructor, to make sure we 2013-05-25 22:28:22 +00:00
StringRef.h Added const qualifier to StringRef::edit_distance member function 2013-08-24 01:50:41 +00:00
StringSet.h
StringSwitch.h
TinyPtrVector.h
Triple.h Clean up some usage of Triple. The base class has methods for determining if the target is iOS and Linux. 2013-08-29 20:23:14 +00:00
Twine.h
UniqueVector.h
ValueMap.h
VariadicFunction.h