summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/MC
diff options
context:
space:
mode:
authorMehdi Amini <mehdi.amini@apple.com>2016-11-11 22:18:42 +0000
committerMehdi Amini <mehdi.amini@apple.com>2016-11-11 22:18:42 +0000
commit3ccc39ef7c4b31cdcc9fab1c13616022104481ad (patch)
treeb473a3ab4f7ebcaa616d3416d08f450ff397b629 /llvm/unittests/MC
parenta31a3dae9f216214172807c5eb9096f802c170b7 (diff)
downloadbcm5719-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.cpp14
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.
OpenPOWER on IntegriCloud