llvm/lib/Support
Duncan Sands 2a8bf425bd Rather than giving SmallPtrSetImpl a member field SmallArray which is magically
replaced by a bigger array in SmallPtrSet (by overridding it), instead just use a
pointer to the start of the storage, and have SmallPtrSet pass in the value to use.
This has the disadvantage that SmallPtrSet becomes bigger by one pointer.  It has
the advantage that it no longer uses tricky C++ rules, and is clearly correct while
I'm not sure the previous version was.  This was inspired by g++-4.6 pointing out
that SmallPtrSetImpl was writing off the end of SmallArray, which it was.  Since
SmallArray is replaced with a bigger array in SmallPtrSet, the write was still to
valid memory.  But it was writing off the end of the declared array type - sounds
kind of dubious to me, like it sounded dubious to g++-4.6.  Maybe g++-4.6 is wrong
and this construct is perfectly valid and correctly compiled by all compilers, but
I think it is better to avoid the whole can of worms by avoiding this construct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30 15:02:37 +00:00
..
Allocator.cpp BumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob) 2010-04-13 16:38:06 +00:00
APFloat.cpp
APInt.cpp improve portability to systems that don't have round, patch by 2010-05-15 17:11:55 +00:00
APSInt.cpp
circular_raw_ostream.cpp clean this up, fix std::min ambiguity on some platforms. 2010-04-09 20:43:54 +00:00
CMakeLists.txt ADT: Add DAGDeltaAlgorithm, which is a DAG minimization algorithm built on top of the standard 'delta debugging' algorithm. 2010-06-08 16:21:22 +00:00
CommandLine.cpp Add new configure option, --disable-timestamps, intended to turn off anything which would mess up binary/object comparisons. Currently: 2010-05-10 20:11:56 +00:00
ConstantRange.cpp
COPYRIGHT.regex
DAGDeltaAlgorithm.cpp Use const_iterator where appropriate. 2010-06-08 17:21:57 +00:00
Debug.cpp Fix a bunch of namespace polution. 2010-04-15 17:08:50 +00:00
DeltaAlgorithm.cpp DeltaAlgorithm: Tweak split to split by first/second half instead of even/odd, since adjacent changes are more likely to be related. 2010-06-08 16:21:26 +00:00
Dwarf.cpp Add the entire range of DW_OP_lit[0..31], DW_OP_reg[0..31], and 2010-06-17 01:23:24 +00:00
ErrorHandling.cpp Run interrupt routines as part of report_fatal_error, since we are failing 2010-05-08 02:10:36 +00:00
FileUtilities.cpp fpcmp: Fix bug where fpcmp wouldn't early exit when files obviously differ and 2010-06-15 19:20:30 +00:00
FoldingSet.cpp Use calloc instead of new/memset, it is more efficient when the set is very large. 2010-06-19 17:00:31 +00:00
FormattedStream.cpp
GraphWriter.cpp reduce indentation 2010-04-18 03:35:23 +00:00
IsInf.cpp
IsNAN.cpp
Makefile
ManagedStatic.cpp
MemoryBuffer.cpp Rewrite MemoryBuffer::getSTDIN to use read(2) and a SmallVector buffer. 2010-06-25 16:07:18 +00:00
MemoryObject.cpp
PluginLoader.cpp
PrettyStackTrace.cpp Fix thinko. 2010-06-28 18:33:48 +00:00
raw_os_ostream.cpp
raw_ostream.cpp Minor code simplification. 2010-05-28 16:50:23 +00:00
regcclass.h
regcname.h
regcomp.c
regengine.inc Various MSVC warning fixes about truncated 64 bit shifts and const pointers passed to free. 2010-04-08 15:25:57 +00:00
regerror.c
regex2.h
regex_impl.h
Regex.cpp
regexec.c Push const through the regex engine. Fixes some of the warnings in PR6616. 2010-04-05 17:50:20 +00:00
regfree.c
regstrlcpy.c
regutils.h
SlowOperationInformer.cpp
SmallPtrSet.cpp Rather than giving SmallPtrSetImpl a member field SmallArray which is magically 2010-06-30 15:02:37 +00:00
SmallVector.cpp Use realloc instead of malloc+memcpy when growing a POD SmallVector. A smart 2010-06-08 11:44:30 +00:00
SourceMgr.cpp enhance SMDiagnostic to also maintain a pointer to the SourceMgr. 2010-04-06 18:06:18 +00:00
Statistic.cpp Introduce namespace-scope functions to enable LLVM statistics without 2010-03-30 17:32:08 +00:00
StringExtras.cpp
StringMap.cpp
StringPool.cpp
StringRef.cpp Add StringRef::compare_numeric and use it to sort TableGen register records. 2010-05-26 21:47:28 +00:00
SystemUtils.cpp
TargetRegistry.cpp
Timer.cpp Give NamedRegionTimer an Enabled flag, allowing all its clients to 2010-06-18 15:56:31 +00:00
Triple.cpp
Twine.cpp Implement rdar://7415680 - Twine integer support lacks greatness 2010-05-05 18:40:33 +00:00