diff options
| author | Mehdi Amini <mehdi.amini@apple.com> | 2016-11-11 22:18:42 +0000 |
|---|---|---|
| committer | Mehdi Amini <mehdi.amini@apple.com> | 2016-11-11 22:18:42 +0000 |
| commit | 3ccc39ef7c4b31cdcc9fab1c13616022104481ad (patch) | |
| tree | b473a3ab4f7ebcaa616d3416d08f450ff397b629 /llvm/unittests/MC | |
| parent | a31a3dae9f216214172807c5eb9096f802c170b7 (diff) | |
| download | bcm5719-llvm-3ccc39ef7c4b31cdcc9fab1c13616022104481ad.tar.gz bcm5719-llvm-3ccc39ef7c4b31cdcc9fab1c13616022104481ad.zip | |
Fix static initialization order fiasco in MCTests
Reported by Kostya on llvm-dev, uncovered by an ASAN bot
llvm-svn: 286647
Diffstat (limited to 'llvm/unittests/MC')
| -rw-r--r-- | llvm/unittests/MC/DwarfLineTables.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/llvm/unittests/MC/DwarfLineTables.cpp b/llvm/unittests/MC/DwarfLineTables.cpp index 4bfb5acea03..d66c832df0b 100644 --- a/llvm/unittests/MC/DwarfLineTables.cpp +++ b/llvm/unittests/MC/DwarfLineTables.cpp @@ -46,21 +46,25 @@ struct Context { operator MCContext &() { return *Ctx; }; }; -Context Ctxt; +Context &getContext() { + static Context Ctxt; + return Ctxt; +} } void verifyEncoding(MCDwarfLineTableParams Params, int LineDelta, int AddrDelta, ArrayRef<uint8_t> ExpectedEncoding) { SmallString<16> Buffer; raw_svector_ostream EncodingOS(Buffer); - MCDwarfLineAddr::Encode(Ctxt, Params, LineDelta, AddrDelta, EncodingOS); + MCDwarfLineAddr::Encode(getContext(), Params, LineDelta, AddrDelta, + EncodingOS); ArrayRef<uint8_t> Encoding(reinterpret_cast<uint8_t *>(Buffer.data()), Buffer.size()); EXPECT_EQ(ExpectedEncoding, Encoding); } TEST(DwarfLineTables, TestDefaultParams) { - if (!Ctxt) + if (!getContext()) return; MCDwarfLineTableParams Params; @@ -110,7 +114,7 @@ TEST(DwarfLineTables, TestDefaultParams) { } TEST(DwarfLineTables, TestCustomParams) { - if (!Ctxt) + if (!getContext()) return; // Some tests against the example values given in the standard. @@ -164,7 +168,7 @@ TEST(DwarfLineTables, TestCustomParams) { } TEST(DwarfLineTables, TestCustomParams2) { - if (!Ctxt) + if (!getContext()) return; // Corner case param values. |

