Bug Summary

File:unittests/IR/ConstantsTest.cpp
Location:line 270, column 3
Description:Function call argument is an uninitialized value

Annotated Source Code

1//===- llvm/unittest/IR/ConstantsTest.cpp - Constants unit tests ----------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "llvm/AsmParser/Parser.h"
11#include "llvm/IR/Constants.h"
12#include "llvm/IR/DerivedTypes.h"
13#include "llvm/IR/InstrTypes.h"
14#include "llvm/IR/Instruction.h"
15#include "llvm/IR/LLVMContext.h"
16#include "llvm/IR/Module.h"
17#include "llvm/Support/SourceMgr.h"
18#include "gtest/gtest.h"
19
20namespace llvm {
21namespace {
22
23TEST(ConstantsTest, Integer_i1)class ConstantsTest_Integer_i1_Test : public ::testing::Test {
public: ConstantsTest_Integer_i1_Test() {} private: virtual void
TestBody(); static ::testing::TestInfo* const test_info_ __attribute__
((unused)); ConstantsTest_Integer_i1_Test(ConstantsTest_Integer_i1_Test
const &); void operator=(ConstantsTest_Integer_i1_Test const
&);};::testing::TestInfo* const ConstantsTest_Integer_i1_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "Integer_i1", __null, __null, (::testing::internal
::GetTestTypeId()), ::testing::Test::SetUpTestCase, ::testing
::Test::TearDownTestCase, new ::testing::internal::TestFactoryImpl
< ConstantsTest_Integer_i1_Test>);void ConstantsTest_Integer_i1_Test
::TestBody()
{
24 IntegerType* Int1 = IntegerType::get(getGlobalContext(), 1);
25 Constant* One = ConstantInt::get(Int1, 1, true);
26 Constant* Zero = ConstantInt::get(Int1, 0);
27 Constant* NegOne = ConstantInt::get(Int1, static_cast<uint64_t>(-1), true);
28 EXPECT_EQ(NegOne, ConstantInt::getSigned(Int1, -1))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(NegOne)) == 1)>::Compare("NegOne"
, "ConstantInt::getSigned(Int1, -1)", NegOne, ConstantInt::getSigned
(Int1, -1)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 28, gtest_ar.failure_message()) = ::testing::Message()
;
29 Constant* Undef = UndefValue::get(Int1);
30
31 // Input: @b = constant i1 add(i1 1 , i1 1)
32 // Output: @b = constant i1 false
33 EXPECT_EQ(Zero, ConstantExpr::getAdd(One, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getAdd(One, One)", Zero, ConstantExpr::getAdd
(One, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 33, gtest_ar.failure_message()) = ::testing::Message()
;
34
35 // @c = constant i1 add(i1 -1, i1 1)
36 // @c = constant i1 false
37 EXPECT_EQ(Zero, ConstantExpr::getAdd(NegOne, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getAdd(NegOne, One)", Zero, ConstantExpr::getAdd
(NegOne, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 37, gtest_ar.failure_message()) = ::testing::Message()
;
38
39 // @d = constant i1 add(i1 -1, i1 -1)
40 // @d = constant i1 false
41 EXPECT_EQ(Zero, ConstantExpr::getAdd(NegOne, NegOne))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getAdd(NegOne, NegOne)", Zero, ConstantExpr::
getAdd(NegOne, NegOne)))) ; else ::testing::internal::AssertHelper
(::testing::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 41, gtest_ar.failure_message()) = ::testing::Message()
;
42
43 // @e = constant i1 sub(i1 -1, i1 1)
44 // @e = constant i1 false
45 EXPECT_EQ(Zero, ConstantExpr::getSub(NegOne, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getSub(NegOne, One)", Zero, ConstantExpr::getSub
(NegOne, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 45, gtest_ar.failure_message()) = ::testing::Message()
;
46
47 // @f = constant i1 sub(i1 1 , i1 -1)
48 // @f = constant i1 false
49 EXPECT_EQ(Zero, ConstantExpr::getSub(One, NegOne))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getSub(One, NegOne)", Zero, ConstantExpr::getSub
(One, NegOne)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 49, gtest_ar.failure_message()) = ::testing::Message()
;
50
51 // @g = constant i1 sub(i1 1 , i1 1)
52 // @g = constant i1 false
53 EXPECT_EQ(Zero, ConstantExpr::getSub(One, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getSub(One, One)", Zero, ConstantExpr::getSub
(One, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 53, gtest_ar.failure_message()) = ::testing::Message()
;
54
55 // @h = constant i1 shl(i1 1 , i1 1) ; undefined
56 // @h = constant i1 undef
57 EXPECT_EQ(Undef, ConstantExpr::getShl(One, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Undef)) == 1)>::Compare("Undef"
, "ConstantExpr::getShl(One, One)", Undef, ConstantExpr::getShl
(One, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 57, gtest_ar.failure_message()) = ::testing::Message()
;
58
59 // @i = constant i1 shl(i1 1 , i1 0)
60 // @i = constant i1 true
61 EXPECT_EQ(One, ConstantExpr::getShl(One, Zero))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(One)) == 1)>::Compare("One"
, "ConstantExpr::getShl(One, Zero)", One, ConstantExpr::getShl
(One, Zero)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 61, gtest_ar.failure_message()) = ::testing::Message()
;
62
63 // @j = constant i1 lshr(i1 1, i1 1) ; undefined
64 // @j = constant i1 undef
65 EXPECT_EQ(Undef, ConstantExpr::getLShr(One, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Undef)) == 1)>::Compare("Undef"
, "ConstantExpr::getLShr(One, One)", Undef, ConstantExpr::getLShr
(One, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 65, gtest_ar.failure_message()) = ::testing::Message()
;
66
67 // @m = constant i1 ashr(i1 1, i1 1) ; undefined
68 // @m = constant i1 undef
69 EXPECT_EQ(Undef, ConstantExpr::getAShr(One, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Undef)) == 1)>::Compare("Undef"
, "ConstantExpr::getAShr(One, One)", Undef, ConstantExpr::getAShr
(One, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 69, gtest_ar.failure_message()) = ::testing::Message()
;
70
71 // @n = constant i1 mul(i1 -1, i1 1)
72 // @n = constant i1 true
73 EXPECT_EQ(One, ConstantExpr::getMul(NegOne, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(One)) == 1)>::Compare("One"
, "ConstantExpr::getMul(NegOne, One)", One, ConstantExpr::getMul
(NegOne, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 73, gtest_ar.failure_message()) = ::testing::Message()
;
74
75 // @o = constant i1 sdiv(i1 -1, i1 1) ; overflow
76 // @o = constant i1 true
77 EXPECT_EQ(One, ConstantExpr::getSDiv(NegOne, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(One)) == 1)>::Compare("One"
, "ConstantExpr::getSDiv(NegOne, One)", One, ConstantExpr::getSDiv
(NegOne, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 77, gtest_ar.failure_message()) = ::testing::Message()
;
78
79 // @p = constant i1 sdiv(i1 1 , i1 -1); overflow
80 // @p = constant i1 true
81 EXPECT_EQ(One, ConstantExpr::getSDiv(One, NegOne))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(One)) == 1)>::Compare("One"
, "ConstantExpr::getSDiv(One, NegOne)", One, ConstantExpr::getSDiv
(One, NegOne)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 81, gtest_ar.failure_message()) = ::testing::Message()
;
82
83 // @q = constant i1 udiv(i1 -1, i1 1)
84 // @q = constant i1 true
85 EXPECT_EQ(One, ConstantExpr::getUDiv(NegOne, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(One)) == 1)>::Compare("One"
, "ConstantExpr::getUDiv(NegOne, One)", One, ConstantExpr::getUDiv
(NegOne, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 85, gtest_ar.failure_message()) = ::testing::Message()
;
86
87 // @r = constant i1 udiv(i1 1, i1 -1)
88 // @r = constant i1 true
89 EXPECT_EQ(One, ConstantExpr::getUDiv(One, NegOne))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(One)) == 1)>::Compare("One"
, "ConstantExpr::getUDiv(One, NegOne)", One, ConstantExpr::getUDiv
(One, NegOne)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 89, gtest_ar.failure_message()) = ::testing::Message()
;
90
91 // @s = constant i1 srem(i1 -1, i1 1) ; overflow
92 // @s = constant i1 false
93 EXPECT_EQ(Zero, ConstantExpr::getSRem(NegOne, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getSRem(NegOne, One)", Zero, ConstantExpr::getSRem
(NegOne, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 93, gtest_ar.failure_message()) = ::testing::Message()
;
94
95 // @t = constant i1 urem(i1 -1, i1 1)
96 // @t = constant i1 false
97 EXPECT_EQ(Zero, ConstantExpr::getURem(NegOne, One))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getURem(NegOne, One)", Zero, ConstantExpr::getURem
(NegOne, One)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 97, gtest_ar.failure_message()) = ::testing::Message()
;
98
99 // @u = constant i1 srem(i1 1, i1 -1) ; overflow
100 // @u = constant i1 false
101 EXPECT_EQ(Zero, ConstantExpr::getSRem(One, NegOne))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Zero)) == 1)>::Compare("Zero"
, "ConstantExpr::getSRem(One, NegOne)", Zero, ConstantExpr::getSRem
(One, NegOne)))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 101, gtest_ar.failure_message()) = ::testing::Message()
;
102}
103
104TEST(ConstantsTest, IntSigns)class ConstantsTest_IntSigns_Test : public ::testing::Test { public
: ConstantsTest_IntSigns_Test() {} private: virtual void TestBody
(); static ::testing::TestInfo* const test_info_ __attribute__
((unused)); ConstantsTest_IntSigns_Test(ConstantsTest_IntSigns_Test
const &); void operator=(ConstantsTest_IntSigns_Test const
&);};::testing::TestInfo* const ConstantsTest_IntSigns_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "IntSigns", __null, __null, (::testing::internal
::GetTestTypeId()), ::testing::Test::SetUpTestCase, ::testing
::Test::TearDownTestCase, new ::testing::internal::TestFactoryImpl
< ConstantsTest_IntSigns_Test>);void ConstantsTest_IntSigns_Test
::TestBody()
{
105 IntegerType* Int8Ty = Type::getInt8Ty(getGlobalContext());
106 EXPECT_EQ(100, ConstantInt::get(Int8Ty, 100, false)->getSExtValue())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(100)) == 1)>::Compare("100"
, "ConstantInt::get(Int8Ty, 100, false)->getSExtValue()", 100
, ConstantInt::get(Int8Ty, 100, false)->getSExtValue()))) ;
else ::testing::internal::AssertHelper(::testing::TestPartResult
::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 106, gtest_ar.failure_message()) = ::testing::Message()
;
107 EXPECT_EQ(100, ConstantInt::get(Int8Ty, 100, true)->getSExtValue())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(100)) == 1)>::Compare("100"
, "ConstantInt::get(Int8Ty, 100, true)->getSExtValue()", 100
, ConstantInt::get(Int8Ty, 100, true)->getSExtValue()))) ;
else ::testing::internal::AssertHelper(::testing::TestPartResult
::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 107, gtest_ar.failure_message()) = ::testing::Message()
;
108 EXPECT_EQ(100, ConstantInt::getSigned(Int8Ty, 100)->getSExtValue())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(100)) == 1)>::Compare("100"
, "ConstantInt::getSigned(Int8Ty, 100)->getSExtValue()", 100
, ConstantInt::getSigned(Int8Ty, 100)->getSExtValue()))) ;
else ::testing::internal::AssertHelper(::testing::TestPartResult
::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 108, gtest_ar.failure_message()) = ::testing::Message()
;
109 EXPECT_EQ(-50, ConstantInt::get(Int8Ty, 206)->getSExtValue())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(-50)) == 1)>::Compare("-50"
, "ConstantInt::get(Int8Ty, 206)->getSExtValue()", -50, ConstantInt
::get(Int8Ty, 206)->getSExtValue()))) ; else ::testing::internal
::AssertHelper(::testing::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 109, gtest_ar.failure_message()) = ::testing::Message()
;
110 EXPECT_EQ(-50, ConstantInt::getSigned(Int8Ty, -50)->getSExtValue())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(-50)) == 1)>::Compare("-50"
, "ConstantInt::getSigned(Int8Ty, -50)->getSExtValue()", -
50, ConstantInt::getSigned(Int8Ty, -50)->getSExtValue())))
; else ::testing::internal::AssertHelper(::testing::TestPartResult
::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 110, gtest_ar.failure_message()) = ::testing::Message()
;
111 EXPECT_EQ(206U, ConstantInt::getSigned(Int8Ty, -50)->getZExtValue())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(206U)) == 1)>::Compare("206U"
, "ConstantInt::getSigned(Int8Ty, -50)->getZExtValue()", 206U
, ConstantInt::getSigned(Int8Ty, -50)->getZExtValue()))) ;
else ::testing::internal::AssertHelper(::testing::TestPartResult
::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 111, gtest_ar.failure_message()) = ::testing::Message()
;
112
113 // Overflow is handled by truncation.
114 EXPECT_EQ(0x3b, ConstantInt::get(Int8Ty, 0x13b)->getSExtValue())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(0x3b)) == 1)>::Compare("0x3b"
, "ConstantInt::get(Int8Ty, 0x13b)->getSExtValue()", 0x3b,
ConstantInt::get(Int8Ty, 0x13b)->getSExtValue()))) ; else
::testing::internal::AssertHelper(::testing::TestPartResult::
kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 114, gtest_ar.failure_message()) = ::testing::Message()
;
115}
116
117TEST(ConstantsTest, FP128Test)class ConstantsTest_FP128Test_Test : public ::testing::Test {
public: ConstantsTest_FP128Test_Test() {} private: virtual void
TestBody(); static ::testing::TestInfo* const test_info_ __attribute__
((unused)); ConstantsTest_FP128Test_Test(ConstantsTest_FP128Test_Test
const &); void operator=(ConstantsTest_FP128Test_Test const
&);};::testing::TestInfo* const ConstantsTest_FP128Test_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "FP128Test", __null, __null, (::testing::internal
::GetTestTypeId()), ::testing::Test::SetUpTestCase, ::testing
::Test::TearDownTestCase, new ::testing::internal::TestFactoryImpl
< ConstantsTest_FP128Test_Test>);void ConstantsTest_FP128Test_Test
::TestBody()
{
118 Type *FP128Ty = Type::getFP128Ty(getGlobalContext());
119
120 IntegerType *Int128Ty = Type::getIntNTy(getGlobalContext(), 128);
121 Constant *Zero128 = Constant::getNullValue(Int128Ty);
122 Constant *X = ConstantExpr::getUIToFP(Zero128, FP128Ty);
123 EXPECT_TRUE(isa<ConstantFP>(X))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(isa<ConstantFP>
(X))) ; else ::testing::internal::AssertHelper(::testing::TestPartResult
::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 123, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "isa<ConstantFP>(X)", "false", "true").c_str()) = ::testing
::Message()
;
124}
125
126TEST(ConstantsTest, PointerCast)class ConstantsTest_PointerCast_Test : public ::testing::Test
{ public: ConstantsTest_PointerCast_Test() {} private: virtual
void TestBody(); static ::testing::TestInfo* const test_info_
__attribute__ ((unused)); ConstantsTest_PointerCast_Test(ConstantsTest_PointerCast_Test
const &); void operator=(ConstantsTest_PointerCast_Test const
&);};::testing::TestInfo* const ConstantsTest_PointerCast_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "PointerCast", __null, __null, (::testing::
internal::GetTestTypeId()), ::testing::Test::SetUpTestCase, ::
testing::Test::TearDownTestCase, new ::testing::internal::TestFactoryImpl
< ConstantsTest_PointerCast_Test>);void ConstantsTest_PointerCast_Test
::TestBody()
{
127 LLVMContext &C(getGlobalContext());
128 Type *Int8PtrTy = Type::getInt8PtrTy(C);
129 Type *Int32PtrTy = Type::getInt32PtrTy(C);
130 Type *Int64Ty = Type::getInt64Ty(C);
131 VectorType *Int8PtrVecTy = VectorType::get(Int8PtrTy, 4);
132 VectorType *Int32PtrVecTy = VectorType::get(Int32PtrTy, 4);
133 VectorType *Int64VecTy = VectorType::get(Int64Ty, 4);
134
135 // ptrtoint i8* to i64
136 EXPECT_EQ(Constant::getNullValue(Int64Ty),switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int64Ty
))) == 1)>::Compare("Constant::getNullValue(Int64Ty)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrTy), Int64Ty)"
, Constant::getNullValue(Int64Ty), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrTy), Int64Ty)))) ; else ::testing
::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure
, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 138, gtest_ar.failure_message()) = ::testing::Message()
137 ConstantExpr::getPointerCast(switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int64Ty
))) == 1)>::Compare("Constant::getNullValue(Int64Ty)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrTy), Int64Ty)"
, Constant::getNullValue(Int64Ty), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrTy), Int64Ty)))) ; else ::testing
::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure
, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 138, gtest_ar.failure_message()) = ::testing::Message()
138 Constant::getNullValue(Int8PtrTy), Int64Ty))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int64Ty
))) == 1)>::Compare("Constant::getNullValue(Int64Ty)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrTy), Int64Ty)"
, Constant::getNullValue(Int64Ty), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrTy), Int64Ty)))) ; else ::testing
::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure
, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 138, gtest_ar.failure_message()) = ::testing::Message()
;
139
140 // bitcast i8* to i32*
141 EXPECT_EQ(Constant::getNullValue(Int32PtrTy),switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int32PtrTy
))) == 1)>::Compare("Constant::getNullValue(Int32PtrTy)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrTy), Int32PtrTy)"
, Constant::getNullValue(Int32PtrTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrTy), Int32PtrTy)))) ; else ::
testing::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure
, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 143, gtest_ar.failure_message()) = ::testing::Message()
142 ConstantExpr::getPointerCast(switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int32PtrTy
))) == 1)>::Compare("Constant::getNullValue(Int32PtrTy)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrTy), Int32PtrTy)"
, Constant::getNullValue(Int32PtrTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrTy), Int32PtrTy)))) ; else ::
testing::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure
, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 143, gtest_ar.failure_message()) = ::testing::Message()
143 Constant::getNullValue(Int8PtrTy), Int32PtrTy))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int32PtrTy
))) == 1)>::Compare("Constant::getNullValue(Int32PtrTy)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrTy), Int32PtrTy)"
, Constant::getNullValue(Int32PtrTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrTy), Int32PtrTy)))) ; else ::
testing::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure
, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 143, gtest_ar.failure_message()) = ::testing::Message()
;
144
145 // ptrtoint <4 x i8*> to <4 x i64>
146 EXPECT_EQ(Constant::getNullValue(Int64VecTy),switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int64VecTy
))) == 1)>::Compare("Constant::getNullValue(Int64VecTy)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrVecTy), Int64VecTy)"
, Constant::getNullValue(Int64VecTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrVecTy), Int64VecTy)))) ; else
::testing::internal::AssertHelper(::testing::TestPartResult::
kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 148, gtest_ar.failure_message()) = ::testing::Message()
147 ConstantExpr::getPointerCast(switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int64VecTy
))) == 1)>::Compare("Constant::getNullValue(Int64VecTy)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrVecTy), Int64VecTy)"
, Constant::getNullValue(Int64VecTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrVecTy), Int64VecTy)))) ; else
::testing::internal::AssertHelper(::testing::TestPartResult::
kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 148, gtest_ar.failure_message()) = ::testing::Message()
148 Constant::getNullValue(Int8PtrVecTy), Int64VecTy))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int64VecTy
))) == 1)>::Compare("Constant::getNullValue(Int64VecTy)", "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrVecTy), Int64VecTy)"
, Constant::getNullValue(Int64VecTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrVecTy), Int64VecTy)))) ; else
::testing::internal::AssertHelper(::testing::TestPartResult::
kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 148, gtest_ar.failure_message()) = ::testing::Message()
;
149
150 // bitcast <4 x i8*> to <4 x i32*>
151 EXPECT_EQ(Constant::getNullValue(Int32PtrVecTy),switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int32PtrVecTy
))) == 1)>::Compare("Constant::getNullValue(Int32PtrVecTy)"
, "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrVecTy), Int32PtrVecTy)"
, Constant::getNullValue(Int32PtrVecTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrVecTy), Int32PtrVecTy)))) ; else
::testing::internal::AssertHelper(::testing::TestPartResult::
kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 153, gtest_ar.failure_message()) = ::testing::Message()
152 ConstantExpr::getPointerCast(switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int32PtrVecTy
))) == 1)>::Compare("Constant::getNullValue(Int32PtrVecTy)"
, "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrVecTy), Int32PtrVecTy)"
, Constant::getNullValue(Int32PtrVecTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrVecTy), Int32PtrVecTy)))) ; else
::testing::internal::AssertHelper(::testing::TestPartResult::
kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 153, gtest_ar.failure_message()) = ::testing::Message()
153 Constant::getNullValue(Int8PtrVecTy), Int32PtrVecTy))switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Constant::getNullValue(Int32PtrVecTy
))) == 1)>::Compare("Constant::getNullValue(Int32PtrVecTy)"
, "ConstantExpr::getPointerCast( Constant::getNullValue(Int8PtrVecTy), Int32PtrVecTy)"
, Constant::getNullValue(Int32PtrVecTy), ConstantExpr::getPointerCast
( Constant::getNullValue(Int8PtrVecTy), Int32PtrVecTy)))) ; else
::testing::internal::AssertHelper(::testing::TestPartResult::
kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 153, gtest_ar.failure_message()) = ::testing::Message()
;
154}
155
156#define CHECK(x, y) { \
157 std::string __s; \
158 raw_string_ostream __o(__s); \
159 Instruction *__I = cast<ConstantExpr>(x)->getAsInstruction(); \
160 __I->print(__o); \
161 delete __I; \
162 __o.flush(); \
163 EXPECT_EQ(std::string(" <badref> = " y), __s)switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(std::string(" <badref> = "
y))) == 1)>::Compare("std::string(\" <badref> = \" y)"
, "__s", std::string(" <badref> = " y), __s))) ; else ::
testing::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure
, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 163, gtest_ar.failure_message()) = ::testing::Message()
; \
164 }
165
166TEST(ConstantsTest, AsInstructionsTest)class ConstantsTest_AsInstructionsTest_Test : public ::testing
::Test { public: ConstantsTest_AsInstructionsTest_Test() {} private
: virtual void TestBody(); static ::testing::TestInfo* const test_info_
__attribute__ ((unused)); ConstantsTest_AsInstructionsTest_Test
(ConstantsTest_AsInstructionsTest_Test const &); void operator
=(ConstantsTest_AsInstructionsTest_Test const &);};::testing
::TestInfo* const ConstantsTest_AsInstructionsTest_Test ::test_info_
= ::testing::internal::MakeAndRegisterTestInfo( "ConstantsTest"
, "AsInstructionsTest", __null, __null, (::testing::internal::
GetTestTypeId()), ::testing::Test::SetUpTestCase, ::testing::
Test::TearDownTestCase, new ::testing::internal::TestFactoryImpl
< ConstantsTest_AsInstructionsTest_Test>);void ConstantsTest_AsInstructionsTest_Test
::TestBody()
{
167 std::unique_ptr<Module> M(new Module("MyModule", getGlobalContext()));
168
169 Type *Int64Ty = Type::getInt64Ty(getGlobalContext());
170 Type *Int32Ty = Type::getInt32Ty(getGlobalContext());
171 Type *Int16Ty = Type::getInt16Ty(getGlobalContext());
172 Type *Int1Ty = Type::getInt1Ty(getGlobalContext());
173 Type *FloatTy = Type::getFloatTy(getGlobalContext());
174 Type *DoubleTy = Type::getDoubleTy(getGlobalContext());
175
176 Constant *Global = M->getOrInsertGlobal("dummy",
177 PointerType::getUnqual(Int32Ty));
178 Constant *Global2 = M->getOrInsertGlobal("dummy2",
179 PointerType::getUnqual(Int32Ty));
180
181 Constant *P0 = ConstantExpr::getPtrToInt(Global, Int32Ty);
182 Constant *P1 = ConstantExpr::getUIToFP(P0, FloatTy);
183 Constant *P2 = ConstantExpr::getUIToFP(P0, DoubleTy);
184 Constant *P3 = ConstantExpr::getTrunc(P0, Int1Ty);
185 Constant *P4 = ConstantExpr::getPtrToInt(Global2, Int32Ty);
186 Constant *P5 = ConstantExpr::getUIToFP(P4, FloatTy);
187 Constant *P6 = ConstantExpr::getBitCast(P4, VectorType::get(Int16Ty, 2));
188
189 Constant *One = ConstantInt::get(Int32Ty, 1);
190
191 #define P0STR"ptrtoint (i32** @dummy to i32)" "ptrtoint (i32** @dummy to i32)"
192 #define P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)" "uitofp (i32 ptrtoint (i32** @dummy to i32) to float)"
193 #define P2STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to double)" "uitofp (i32 ptrtoint (i32** @dummy to i32) to double)"
194 #define P3STR"ptrtoint (i32** @dummy to i1)" "ptrtoint (i32** @dummy to i1)"
195 #define P4STR"ptrtoint (i32** @dummy2 to i32)" "ptrtoint (i32** @dummy2 to i32)"
196 #define P5STR"uitofp (i32 ptrtoint (i32** @dummy2 to i32) to float)" "uitofp (i32 ptrtoint (i32** @dummy2 to i32) to float)"
197 #define P6STR"bitcast (i32 ptrtoint (i32** @dummy2 to i32) to <2 x i16>)" "bitcast (i32 ptrtoint (i32** @dummy2 to i32) to <2 x i16>)"
198
199 CHECK(ConstantExpr::getNeg(P0), "sub i32 0, " P0STR"ptrtoint (i32** @dummy to i32)");
200 CHECK(ConstantExpr::getFNeg(P1), "fsub float -0.000000e+00, " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)");
201 CHECK(ConstantExpr::getNot(P0), "xor i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", -1");
202 CHECK(ConstantExpr::getAdd(P0, P0), "add i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
203 CHECK(ConstantExpr::getAdd(P0, P0, false, true), "add nsw i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", "
204 P0STR"ptrtoint (i32** @dummy to i32)");
205 CHECK(ConstantExpr::getAdd(P0, P0, true, true), "add nuw nsw i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", "
206 P0STR"ptrtoint (i32** @dummy to i32)");
207 CHECK(ConstantExpr::getFAdd(P1, P1), "fadd float " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)" ", " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)");
208 CHECK(ConstantExpr::getSub(P0, P0), "sub i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
209 CHECK(ConstantExpr::getFSub(P1, P1), "fsub float " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)" ", " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)");
210 CHECK(ConstantExpr::getMul(P0, P0), "mul i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
211 CHECK(ConstantExpr::getFMul(P1, P1), "fmul float " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)" ", " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)");
212 CHECK(ConstantExpr::getUDiv(P0, P0), "udiv i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
213 CHECK(ConstantExpr::getSDiv(P0, P0), "sdiv i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
214 CHECK(ConstantExpr::getFDiv(P1, P1), "fdiv float " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)" ", " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)");
215 CHECK(ConstantExpr::getURem(P0, P0), "urem i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
216 CHECK(ConstantExpr::getSRem(P0, P0), "srem i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
217 CHECK(ConstantExpr::getFRem(P1, P1), "frem float " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)" ", " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)");
218 CHECK(ConstantExpr::getAnd(P0, P0), "and i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
219 CHECK(ConstantExpr::getOr(P0, P0), "or i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
220 CHECK(ConstantExpr::getXor(P0, P0), "xor i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
221 CHECK(ConstantExpr::getShl(P0, P0), "shl i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
222 CHECK(ConstantExpr::getShl(P0, P0, true), "shl nuw i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
223 CHECK(ConstantExpr::getShl(P0, P0, false, true), "shl nsw i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", "
224 P0STR"ptrtoint (i32** @dummy to i32)");
225 CHECK(ConstantExpr::getLShr(P0, P0, false), "lshr i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
226 CHECK(ConstantExpr::getLShr(P0, P0, true), "lshr exact i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
227 CHECK(ConstantExpr::getAShr(P0, P0, false), "ashr i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
228 CHECK(ConstantExpr::getAShr(P0, P0, true), "ashr exact i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
229
230 CHECK(ConstantExpr::getSExt(P0, Int64Ty), "sext i32 " P0STR"ptrtoint (i32** @dummy to i32)" " to i64");
231 CHECK(ConstantExpr::getZExt(P0, Int64Ty), "zext i32 " P0STR"ptrtoint (i32** @dummy to i32)" " to i64");
232 CHECK(ConstantExpr::getFPTrunc(P2, FloatTy), "fptrunc double " P2STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to double)"
233 " to float");
234 CHECK(ConstantExpr::getFPExtend(P1, DoubleTy), "fpext float " P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)"
235 " to double");
236
237 CHECK(ConstantExpr::getExactUDiv(P0, P0), "udiv exact i32 " P0STR"ptrtoint (i32** @dummy to i32)" ", " P0STR"ptrtoint (i32** @dummy to i32)");
238
239 CHECK(ConstantExpr::getSelect(P3, P0, P4), "select i1 " P3STR"ptrtoint (i32** @dummy to i1)" ", i32 " P0STR"ptrtoint (i32** @dummy to i32)"
240 ", i32 " P4STR"ptrtoint (i32** @dummy2 to i32)");
241 CHECK(ConstantExpr::getICmp(CmpInst::ICMP_EQ, P0, P4), "icmp eq i32 " P0STR"ptrtoint (i32** @dummy to i32)"
242 ", " P4STR"ptrtoint (i32** @dummy2 to i32)");
243 CHECK(ConstantExpr::getFCmp(CmpInst::FCMP_ULT, P1, P5), "fcmp ult float "
244 P1STR"uitofp (i32 ptrtoint (i32** @dummy to i32) to float)" ", " P5STR"uitofp (i32 ptrtoint (i32** @dummy2 to i32) to float)");
245
246 std::vector<Constant*> V;
247 V.push_back(One);
248 // FIXME: getGetElementPtr() actually creates an inbounds ConstantGEP,
249 // not a normal one!
250 //CHECK(ConstantExpr::getGetElementPtr(Global, V, false),
251 // "getelementptr i32*, i32** @dummy, i32 1");
252 CHECK(ConstantExpr::getInBoundsGetElementPtr(Global, V),
253 "getelementptr inbounds i32*, i32** @dummy, i32 1");
254
255 CHECK(ConstantExpr::getExtractElement(P6, One), "extractelement <2 x i16> "
256 P6STR"bitcast (i32 ptrtoint (i32** @dummy2 to i32) to <2 x i16>)" ", i32 1");
257}
258
259#ifdef GTEST_HAS_DEATH_TEST1
260#ifndef NDEBUG
261TEST(ConstantsTest, ReplaceWithConstantTest)class ConstantsTest_ReplaceWithConstantTest_Test : public ::testing
::Test { public: ConstantsTest_ReplaceWithConstantTest_Test()
{} private: virtual void TestBody(); static ::testing::TestInfo
* const test_info_ __attribute__ ((unused)); ConstantsTest_ReplaceWithConstantTest_Test
(ConstantsTest_ReplaceWithConstantTest_Test const &); void
operator=(ConstantsTest_ReplaceWithConstantTest_Test const &
);};::testing::TestInfo* const ConstantsTest_ReplaceWithConstantTest_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "ReplaceWithConstantTest", __null, __null, (
::testing::internal::GetTestTypeId()), ::testing::Test::SetUpTestCase
, ::testing::Test::TearDownTestCase, new ::testing::internal::
TestFactoryImpl< ConstantsTest_ReplaceWithConstantTest_Test
>);void ConstantsTest_ReplaceWithConstantTest_Test::TestBody
()
{
262 std::unique_ptr<Module> M(new Module("MyModule", getGlobalContext()));
263
264 Type *Int32Ty = Type::getInt32Ty(getGlobalContext());
265 Constant *One = ConstantInt::get(Int32Ty, 1);
266
267 Constant *Global =
268 M->getOrInsertGlobal("dummy", PointerType::getUnqual(Int32Ty));
269 Constant *GEP = ConstantExpr::getGetElementPtr(Global, One);
270 EXPECT_DEATH(Global->replaceAllUsesWith(GEP),switch (0) case 0: default: if (::testing::internal::AlwaysTrue
()) { const ::testing::internal::RE& gtest_regex = ("this->replaceAllUsesWith\\(expr\\(this\\)\\) is NOT valid!"
); ::testing::internal::DeathTest* gtest_dt; if (!::testing::
internal::DeathTest::Create("Global->replaceAllUsesWith(GEP)"
, &gtest_regex, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 271, &gtest_dt)) { goto gtest_label_271; } if (gtest_dt
!= __null) { ::testing::internal::scoped_ptr< ::testing::
internal::DeathTest> gtest_dt_ptr(gtest_dt); switch (gtest_dt
->AssumeRole()) { case ::testing::internal::DeathTest::OVERSEE_TEST
: if (!gtest_dt->Passed(::testing::internal::ExitedUnsuccessfully
(gtest_dt->Wait()))) { goto gtest_label_271; } break; case
::testing::internal::DeathTest::EXECUTE_TEST: { ::testing::internal
::DeathTest::ReturnSentinel gtest_sentinel(gtest_dt); if (::testing
::internal::AlwaysTrue()) { Global->replaceAllUsesWith(GEP
); }; gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE
); break; } } } } else gtest_label_271: ::testing::internal::
AssertHelper(::testing::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 271, ::testing::internal::DeathTest::LastMessage()) = ::testing
::Message()
Within the expansion of the macro 'EXPECT_DEATH':
a
Function call argument is an uninitialized value
271 "this->replaceAllUsesWith\\(expr\\(this\\)\\) is NOT valid!")switch (0) case 0: default: if (::testing::internal::AlwaysTrue
()) { const ::testing::internal::RE& gtest_regex = ("this->replaceAllUsesWith\\(expr\\(this\\)\\) is NOT valid!"
); ::testing::internal::DeathTest* gtest_dt; if (!::testing::
internal::DeathTest::Create("Global->replaceAllUsesWith(GEP)"
, &gtest_regex, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 271, &gtest_dt)) { goto gtest_label_271; } if (gtest_dt
!= __null) { ::testing::internal::scoped_ptr< ::testing::
internal::DeathTest> gtest_dt_ptr(gtest_dt); switch (gtest_dt
->AssumeRole()) { case ::testing::internal::DeathTest::OVERSEE_TEST
: if (!gtest_dt->Passed(::testing::internal::ExitedUnsuccessfully
(gtest_dt->Wait()))) { goto gtest_label_271; } break; case
::testing::internal::DeathTest::EXECUTE_TEST: { ::testing::internal
::DeathTest::ReturnSentinel gtest_sentinel(gtest_dt); if (::testing
::internal::AlwaysTrue()) { Global->replaceAllUsesWith(GEP
); }; gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE
); break; } } } } else gtest_label_271: ::testing::internal::
AssertHelper(::testing::TestPartResult::kNonFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 271, ::testing::internal::DeathTest::LastMessage()) = ::testing
::Message()
;
272}
273
274#endif
275#endif
276
277#undef CHECK
278
279TEST(ConstantsTest, ConstantArrayReplaceWithConstant)class ConstantsTest_ConstantArrayReplaceWithConstant_Test : public
::testing::Test { public: ConstantsTest_ConstantArrayReplaceWithConstant_Test
() {} private: virtual void TestBody(); static ::testing::TestInfo
* const test_info_ __attribute__ ((unused)); ConstantsTest_ConstantArrayReplaceWithConstant_Test
(ConstantsTest_ConstantArrayReplaceWithConstant_Test const &
); void operator=(ConstantsTest_ConstantArrayReplaceWithConstant_Test
const &);};::testing::TestInfo* const ConstantsTest_ConstantArrayReplaceWithConstant_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "ConstantArrayReplaceWithConstant", __null,
__null, (::testing::internal::GetTestTypeId()), ::testing::Test
::SetUpTestCase, ::testing::Test::TearDownTestCase, new ::testing
::internal::TestFactoryImpl< ConstantsTest_ConstantArrayReplaceWithConstant_Test
>);void ConstantsTest_ConstantArrayReplaceWithConstant_Test
::TestBody()
{
280 LLVMContext Context;
281 std::unique_ptr<Module> M(new Module("MyModule", Context));
282
283 Type *IntTy = Type::getInt8Ty(Context);
284 ArrayType *ArrayTy = ArrayType::get(IntTy, 2);
285 Constant *A01Vals[2] = {ConstantInt::get(IntTy, 0),
286 ConstantInt::get(IntTy, 1)};
287 Constant *A01 = ConstantArray::get(ArrayTy, A01Vals);
288
289 Constant *Global = new GlobalVariable(*M, IntTy, false,
290 GlobalValue::ExternalLinkage, nullptr);
291 Constant *GlobalInt = ConstantExpr::getPtrToInt(Global, IntTy);
292 Constant *A0GVals[2] = {ConstantInt::get(IntTy, 0), GlobalInt};
293 Constant *A0G = ConstantArray::get(ArrayTy, A0GVals);
294 ASSERT_NE(A01, A0G)switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal::CmpHelperNE("A01", "A0G", A01
, A0G))) ; else return ::testing::internal::AssertHelper(::testing
::TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 294, gtest_ar.failure_message()) = ::testing::Message()
;
295
296 GlobalVariable *RefArray =
297 new GlobalVariable(*M, ArrayTy, false, GlobalValue::ExternalLinkage, A0G);
298 ASSERT_EQ(A0G, RefArray->getInitializer())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(A0G)) == 1)>::Compare("A0G"
, "RefArray->getInitializer()", A0G, RefArray->getInitializer
()))) ; else return ::testing::internal::AssertHelper(::testing
::TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 298, gtest_ar.failure_message()) = ::testing::Message()
;
299
300 GlobalInt->replaceAllUsesWith(ConstantInt::get(IntTy, 1));
301 ASSERT_EQ(A01, RefArray->getInitializer())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(A01)) == 1)>::Compare("A01"
, "RefArray->getInitializer()", A01, RefArray->getInitializer
()))) ; else return ::testing::internal::AssertHelper(::testing
::TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 301, gtest_ar.failure_message()) = ::testing::Message()
;
302}
303
304TEST(ConstantsTest, ConstantExprReplaceWithConstant)class ConstantsTest_ConstantExprReplaceWithConstant_Test : public
::testing::Test { public: ConstantsTest_ConstantExprReplaceWithConstant_Test
() {} private: virtual void TestBody(); static ::testing::TestInfo
* const test_info_ __attribute__ ((unused)); ConstantsTest_ConstantExprReplaceWithConstant_Test
(ConstantsTest_ConstantExprReplaceWithConstant_Test const &
); void operator=(ConstantsTest_ConstantExprReplaceWithConstant_Test
const &);};::testing::TestInfo* const ConstantsTest_ConstantExprReplaceWithConstant_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "ConstantExprReplaceWithConstant", __null, __null
, (::testing::internal::GetTestTypeId()), ::testing::Test::SetUpTestCase
, ::testing::Test::TearDownTestCase, new ::testing::internal::
TestFactoryImpl< ConstantsTest_ConstantExprReplaceWithConstant_Test
>);void ConstantsTest_ConstantExprReplaceWithConstant_Test
::TestBody()
{
305 LLVMContext Context;
306 std::unique_ptr<Module> M(new Module("MyModule", Context));
307
308 Type *IntTy = Type::getInt8Ty(Context);
309 Constant *G1 = new GlobalVariable(*M, IntTy, false,
310 GlobalValue::ExternalLinkage, nullptr);
311 Constant *G2 = new GlobalVariable(*M, IntTy, false,
312 GlobalValue::ExternalLinkage, nullptr);
313 ASSERT_NE(G1, G2)switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal::CmpHelperNE("G1", "G2", G1,
G2))) ; else return ::testing::internal::AssertHelper(::testing
::TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 313, gtest_ar.failure_message()) = ::testing::Message()
;
314
315 Constant *Int1 = ConstantExpr::getPtrToInt(G1, IntTy);
316 Constant *Int2 = ConstantExpr::getPtrToInt(G2, IntTy);
317 ASSERT_NE(Int1, Int2)switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal::CmpHelperNE("Int1", "Int2",
Int1, Int2))) ; else return ::testing::internal::AssertHelper
(::testing::TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 317, gtest_ar.failure_message()) = ::testing::Message()
;
318
319 GlobalVariable *Ref =
320 new GlobalVariable(*M, IntTy, false, GlobalValue::ExternalLinkage, Int1);
321 ASSERT_EQ(Int1, Ref->getInitializer())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Int1)) == 1)>::Compare("Int1"
, "Ref->getInitializer()", Int1, Ref->getInitializer())
)) ; else return ::testing::internal::AssertHelper(::testing::
TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 321, gtest_ar.failure_message()) = ::testing::Message()
;
322
323 G1->replaceAllUsesWith(G2);
324 ASSERT_EQ(Int2, Ref->getInitializer())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(Int2)) == 1)>::Compare("Int2"
, "Ref->getInitializer()", Int2, Ref->getInitializer())
)) ; else return ::testing::internal::AssertHelper(::testing::
TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 324, gtest_ar.failure_message()) = ::testing::Message()
;
325}
326
327TEST(ConstantsTest, GEPReplaceWithConstant)class ConstantsTest_GEPReplaceWithConstant_Test : public ::testing
::Test { public: ConstantsTest_GEPReplaceWithConstant_Test() {
} private: virtual void TestBody(); static ::testing::TestInfo
* const test_info_ __attribute__ ((unused)); ConstantsTest_GEPReplaceWithConstant_Test
(ConstantsTest_GEPReplaceWithConstant_Test const &); void
operator=(ConstantsTest_GEPReplaceWithConstant_Test const &
);};::testing::TestInfo* const ConstantsTest_GEPReplaceWithConstant_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "GEPReplaceWithConstant", __null, __null, (
::testing::internal::GetTestTypeId()), ::testing::Test::SetUpTestCase
, ::testing::Test::TearDownTestCase, new ::testing::internal::
TestFactoryImpl< ConstantsTest_GEPReplaceWithConstant_Test
>);void ConstantsTest_GEPReplaceWithConstant_Test::TestBody
()
{
328 LLVMContext Context;
329 std::unique_ptr<Module> M(new Module("MyModule", Context));
330
331 Type *IntTy = Type::getInt32Ty(Context);
332 Type *PtrTy = PointerType::get(IntTy, 0);
333 auto *C1 = ConstantInt::get(IntTy, 1);
334 auto *Placeholder = new GlobalVariable(
335 *M, IntTy, false, GlobalValue::ExternalWeakLinkage, nullptr);
336 auto *GEP = ConstantExpr::getGetElementPtr(Placeholder, C1);
337 ASSERT_EQ(GEP->getOperand(0), Placeholder)switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(GEP->getOperand(0))) == 1)
>::Compare("GEP->getOperand(0)", "Placeholder", GEP->
getOperand(0), Placeholder))) ; else return ::testing::internal
::AssertHelper(::testing::TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 337, gtest_ar.failure_message()) = ::testing::Message()
;
338
339 auto *Ref =
340 new GlobalVariable(*M, PtrTy, false, GlobalValue::ExternalLinkage, GEP);
341 ASSERT_EQ(GEP, Ref->getInitializer())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(GEP)) == 1)>::Compare("GEP"
, "Ref->getInitializer()", GEP, Ref->getInitializer()))
) ; else return ::testing::internal::AssertHelper(::testing::
TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 341, gtest_ar.failure_message()) = ::testing::Message()
;
342
343 auto *Global = new GlobalVariable(*M, PtrTy, false,
344 GlobalValue::ExternalLinkage, nullptr);
345 auto *Alias = GlobalAlias::create(IntTy, 0, GlobalValue::ExternalLinkage,
346 "alias", Global, M.get());
347 Placeholder->replaceAllUsesWith(Alias);
348 ASSERT_EQ(GEP, Ref->getInitializer())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(GEP)) == 1)>::Compare("GEP"
, "Ref->getInitializer()", GEP, Ref->getInitializer()))
) ; else return ::testing::internal::AssertHelper(::testing::
TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 348, gtest_ar.failure_message()) = ::testing::Message()
;
349 ASSERT_EQ(GEP->getOperand(0), Alias)switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(GEP->getOperand(0))) == 1)
>::Compare("GEP->getOperand(0)", "Alias", GEP->getOperand
(0), Alias))) ; else return ::testing::internal::AssertHelper
(::testing::TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 349, gtest_ar.failure_message()) = ::testing::Message()
;
350}
351
352TEST(ConstantsTest, AliasCAPI)class ConstantsTest_AliasCAPI_Test : public ::testing::Test {
public: ConstantsTest_AliasCAPI_Test() {} private: virtual void
TestBody(); static ::testing::TestInfo* const test_info_ __attribute__
((unused)); ConstantsTest_AliasCAPI_Test(ConstantsTest_AliasCAPI_Test
const &); void operator=(ConstantsTest_AliasCAPI_Test const
&);};::testing::TestInfo* const ConstantsTest_AliasCAPI_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ConstantsTest", "AliasCAPI", __null, __null, (::testing::internal
::GetTestTypeId()), ::testing::Test::SetUpTestCase, ::testing
::Test::TearDownTestCase, new ::testing::internal::TestFactoryImpl
< ConstantsTest_AliasCAPI_Test>);void ConstantsTest_AliasCAPI_Test
::TestBody()
{
353 LLVMContext Context;
354 SMDiagnostic Error;
355 std::unique_ptr<Module> M =
356 parseAssemblyString("@g = global i32 42", Error, Context);
357 GlobalVariable *G = M->getGlobalVariable("g");
358 Type *I16Ty = Type::getInt16Ty(Context);
359 Type *I16PTy = PointerType::get(I16Ty, 0);
360 Constant *Aliasee = ConstantExpr::getBitCast(G, I16PTy);
361 LLVMValueRef AliasRef =
362 LLVMAddAlias(wrap(M.get()), wrap(I16PTy), wrap(Aliasee), "a");
363 ASSERT_EQ(unwrap<GlobalAlias>(AliasRef)->getAliasee(), Aliasee)switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing
::internal::IsNullLiteralHelper(unwrap<GlobalAlias>(AliasRef
)->getAliasee())) == 1)>::Compare("unwrap<GlobalAlias>(AliasRef)->getAliasee()"
, "Aliasee", unwrap<GlobalAlias>(AliasRef)->getAliasee
(), Aliasee))) ; else return ::testing::internal::AssertHelper
(::testing::TestPartResult::kFatalFailure, "/tmp/buildd/llvm-toolchain-snapshot-3.7~svn233676/unittests/IR/ConstantsTest.cpp"
, 363, gtest_ar.failure_message()) = ::testing::Message()
;
364}
365
366} // end anonymous namespace
367} // end namespace llvm