Fix initialization-order-fiasco error in "Add a heap alloc site marker field to the...
authorAmy Huang <akhuang@google.com>
Thu, 31 Oct 2019 17:48:52 +0000 (10:48 -0700)
committerAmy Huang <akhuang@google.com>
Thu, 31 Oct 2019 17:52:53 +0000 (10:52 -0700)
llvm/unittests/CodeGen/MachineInstrTest.cpp

index 9e45554..90c8a40 100644 (file)
@@ -139,11 +139,9 @@ private:
   BogusSubtarget ST;
 };
 
-static MCAsmInfo AsmInfo = MCAsmInfo();
-
-std::unique_ptr<MCContext> createMCContext() {
+std::unique_ptr<MCContext> createMCContext(MCAsmInfo *AsmInfo) {
   return std::make_unique<MCContext>(
-      &AsmInfo, nullptr, nullptr, nullptr, nullptr, false);
+      AsmInfo, nullptr, nullptr, nullptr, nullptr, false);
 }
 
 std::unique_ptr<BogusTargetMachine> createTargetMachine() {
@@ -378,7 +376,8 @@ TEST(MachineInstrExtraInfo, AddExtraInfo) {
                       0, nullptr, nullptr, nullptr, 0, nullptr};
 
   auto MI = MF->CreateMachineInstr(MCID, DebugLoc());
-  auto MC = createMCContext();
+  auto MAI = MCAsmInfo();
+  auto MC = createMCContext(&MAI);
   auto MMO = MF->getMachineMemOperand(MachinePointerInfo(),
                                       MachineMemOperand::MOLoad, 8, 8);
   SmallVector<MachineMemOperand *, 2> MMOs;
@@ -424,7 +423,8 @@ TEST(MachineInstrExtraInfo, ChangeExtraInfo) {
                       0, nullptr, nullptr, nullptr, 0, nullptr};
 
   auto MI = MF->CreateMachineInstr(MCID, DebugLoc());
-  auto MC = createMCContext();
+  auto MAI = MCAsmInfo();
+  auto MC = createMCContext(&MAI);
   auto MMO = MF->getMachineMemOperand(MachinePointerInfo(),
                                       MachineMemOperand::MOLoad, 8, 8);
   SmallVector<MachineMemOperand *, 2> MMOs;
@@ -460,7 +460,8 @@ TEST(MachineInstrExtraInfo, RemoveExtraInfo) {
                       0, nullptr, nullptr, nullptr, 0, nullptr};
 
   auto MI = MF->CreateMachineInstr(MCID, DebugLoc());
-  auto MC = createMCContext();
+  auto MAI = MCAsmInfo();
+  auto MC = createMCContext(&MAI);
   auto MMO = MF->getMachineMemOperand(MachinePointerInfo(),
                                       MachineMemOperand::MOLoad, 8, 8);
   SmallVector<MachineMemOperand *, 2> MMOs;