Fix & re-enable test that intermittently failed in debug mode.
authorMichael Platings <michael.platings@arm.com>
Thu, 7 Mar 2019 11:55:26 +0000 (11:55 +0000)
committerMichael Platings <michael.platings@arm.com>
Thu, 7 Mar 2019 11:55:26 +0000 (11:55 +0000)
The Value class and derivates will have uninitialized member variables if not created via operator new.

llvm-svn: 355590

llvm/unittests/IR/ConstantsTest.cpp

index 4d967d2..34ebd59 100644 (file)
@@ -556,20 +556,21 @@ TEST(ConstantsTest, DontFoldFunctionPtrIfNoModule) {
   ASSERT_FALSE(foldFuncPtrAndConstToNull(Context, nullptr, 2, 4));
 }
 
-TEST(ConstantsTest, DISABLED_FoldGlobalVariablePtr) {
+TEST(ConstantsTest, FoldGlobalVariablePtr) {
   LLVMContext Context;
 
 
   IntegerType *IntType(Type::getInt32Ty(Context));
 
-  GlobalVariable Global(IntType, true, GlobalValue::ExternalLinkage);
+  std::unique_ptr<GlobalVariable> Global(
+      new GlobalVariable(IntType, true, GlobalValue::ExternalLinkage));
 
-  Global.setAlignment(4);
+  Global->setAlignment(4);
 
   ConstantInt *TheConstant(ConstantInt::get(IntType, 2));
 
   Constant *TheConstantExpr(
-      ConstantExpr::getPtrToInt(&Global, IntType));
+      ConstantExpr::getPtrToInt(Global.get(), IntType));
 
   ASSERT_TRUE(ConstantExpr::get( \
       Instruction::And, TheConstantExpr, TheConstant)->isNullValue());