llvm-6502/include/llvm
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
..
ADT Rather than giving SmallPtrSetImpl a member field SmallArray which is magically 2010-06-30 15:02:37 +00:00
Analysis Add an Intraprocedural form of BasicAliasAnalysis, which aims to 2010-06-29 00:50:39 +00:00
Assembly
Bitcode Don't special-case stdout in llvm::WriteBitcodeToFile; just consider 2010-05-27 20:06:51 +00:00
CodeGen Begin implementation of an inline spiller. 2010-06-29 23:58:39 +00:00
CompilerDriver
Config Pull in the libCrashReporterClient.a information with a warning comment. 2010-06-28 18:25:51 +00:00
ExecutionEngine
MC Revert r107205 and r107207. 2010-06-29 22:34:52 +00:00
Support fit in 80 cols 2010-06-26 23:26:22 +00:00
System DataTypes.h.cmake (MSVC): Protect some #define's and use specific 2010-06-24 22:05:52 +00:00
Target Revert r107205 and r107207. 2010-06-29 22:34:52 +00:00
Transforms Use ValueMap instead of DenseMap. 2010-06-24 00:33:28 +00:00
AbstractTypeUser.h give PATypeHolder an explicit copy ctor which initializes the type pointer, 2010-06-29 19:20:38 +00:00
Argument.h
Attributes.h
AutoUpgrade.h
BasicBlock.h
CallGraphSCCPass.h move ReplaceNode out of line, rename scc_iterator::fini -> isAtEnd(). 2010-04-16 22:59:24 +00:00
CallingConv.h Add support for thiscall calling convention. 2010-05-16 09:08:45 +00:00
CMakeLists.txt
Constant.h
Constants.h Add some comments about undef. 2010-05-14 23:01:02 +00:00
DerivedTypes.h
Function.h
GlobalAlias.h
GlobalValue.h Revert r107205 and r107207. 2010-06-29 22:34:52 +00:00
GlobalVariable.h
GVMaterializer.h
InlineAsm.h
InstrTypes.h Split the logic behind CastInst::isNoopCast into a separate static function, 2010-05-28 21:41:37 +00:00
Instruction.def
Instruction.h
Instructions.h minor cosmetics 2010-06-29 16:27:38 +00:00
IntrinsicInst.h use ArgOperand API 2010-06-29 16:01:30 +00:00
Intrinsics.h
Intrinsics.td back out 104862/104869. Can reuse stacksave after all. Very cool. 2010-05-27 23:11:57 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td Make sure aeskeygenassist uses an unsigned immediate field. 2010-05-25 17:33:22 +00:00
IntrinsicsXCore.td
LinkAllPasses.h Add a simple module-level debug info printer. It just sets up a 2010-05-07 16:22:32 +00:00
LinkAllVMCore.h
Linker.h
LLVMContext.h
Metadata.h Fix comment typo. 2010-04-29 12:32:45 +00:00
Module.h 80-column and trailing whitespace cleanup 2010-06-25 21:02:24 +00:00
OperandTraits.h
Operator.h
Pass.h Move several non-performance-critical member functinos out of line. 2010-06-21 18:46:45 +00:00
PassAnalysisSupport.h Move several non-performance-critical member functinos out of line. 2010-06-21 18:46:45 +00:00
PassManager.h Fix PR6875: 2010-05-10 20:24:27 +00:00
PassManagers.h Move several non-performance-critical member functinos out of line. 2010-06-21 18:46:45 +00:00
PassSupport.h Move several non-performance-critical member functinos out of line. 2010-06-21 18:46:45 +00:00
SymbolTableListTraits.h Avoid many "variable 'Sub' set but not used [-Wunused-but-set-variable]" warnings 2010-06-10 15:06:05 +00:00
Type.h give PATypeHolder an explicit copy ctor which initializes the type pointer, 2010-06-29 19:20:38 +00:00
TypeSymbolTable.h
Use.h Add includes to get ptrdiff_t. This is needed by gcc-4.6 which has 2010-06-10 10:13:58 +00:00
User.h
Value.h make the Value constructor protected. 2010-06-21 16:46:37 +00:00
ValueSymbolTable.h