mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-22 13:29:44 +00:00
Add a note about permitting default member initializers
Use them in WinEHPrepare so that we can spot any toolchain bugs that come up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236244 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e3d17d7e9c
commit
1ed169d8a1
@ -131,6 +131,12 @@ unlikely to be supported by our host compilers.
|
||||
cannot synthesize them.
|
||||
* Initializer lists: N2627_
|
||||
* Delegating constructors: N1986_
|
||||
* Default member initializers (non-static data member initializers): N2756_
|
||||
|
||||
* Only use these for scalar members that would otherwise be left
|
||||
uninitialized. Non-scalar members generally have appropriate default
|
||||
constructors, and MSVC 2013 has problems when braced initializer lists are
|
||||
involved.
|
||||
|
||||
.. _N2118: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
|
||||
.. _N2439: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm
|
||||
@ -156,7 +162,7 @@ unlikely to be supported by our host compilers.
|
||||
.. _N2346: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
|
||||
.. _N2627: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
|
||||
.. _N1986: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
|
||||
.. _MSVC-compatible RTTI: http://llvm.org/PR18951
|
||||
.. _N2756: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2756.htm
|
||||
|
||||
The supported features in the C++11 standard libraries are less well tracked,
|
||||
but also much greater. Most of the standard libraries implement most of C++11's
|
||||
|
@ -72,7 +72,7 @@ class WinEHPrepare : public FunctionPass {
|
||||
public:
|
||||
static char ID; // Pass identification, replacement for typeid.
|
||||
WinEHPrepare(const TargetMachine *TM = nullptr)
|
||||
: FunctionPass(ID), DT(nullptr), SEHExceptionCodeSlot(nullptr) {
|
||||
: FunctionPass(ID) {
|
||||
if (TM)
|
||||
TheTriple = Triple(TM->getTargetTriple());
|
||||
}
|
||||
@ -119,8 +119,8 @@ private:
|
||||
Triple TheTriple;
|
||||
|
||||
// All fields are reset by runOnFunction.
|
||||
DominatorTree *DT;
|
||||
EHPersonality Personality;
|
||||
DominatorTree *DT = nullptr;
|
||||
EHPersonality Personality = EHPersonality::Unknown;
|
||||
CatchHandlerMapTy CatchHandlerMap;
|
||||
CleanupHandlerMapTy CleanupHandlerMap;
|
||||
DenseMap<const LandingPadInst *, LandingPadMap> LPadMaps;
|
||||
@ -150,7 +150,7 @@ private:
|
||||
// 32-bit EH.
|
||||
DenseMap<Function *, Value *> HandlerToParentFP;
|
||||
|
||||
AllocaInst *SEHExceptionCodeSlot;
|
||||
AllocaInst *SEHExceptionCodeSlot = nullptr;
|
||||
};
|
||||
|
||||
class WinEHFrameVariableMaterializer : public ValueMaterializer {
|
||||
|
Loading…
x
Reference in New Issue
Block a user