summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-c-test
diff options
context:
space:
mode:
authoraqjune <aqjune@gmail.com>2019-11-05 13:26:51 +0900
committeraqjune <aqjune@gmail.com>2019-11-05 13:53:52 +0900
commit31be9f3f7dee80c586d3beac9a65663d5628cf96 (patch)
treea88651f3e38b337ab1e27ba8e9da40181bbbd233 /llvm/tools/llvm-c-test
parent0aba69eb1a01c44185009f50cc633e3c648e9950 (diff)
downloadbcm5719-llvm-31be9f3f7dee80c586d3beac9a65663d5628cf96.tar.gz
bcm5719-llvm-31be9f3f7dee80c586d3beac9a65663d5628cf96.zip
Fix clone_constant_impl to correctly deal with null pointers
Summary: This patch resolves llvm-c-test's following error ``` LLVM ERROR: LLVMGetValueKind returned incorrect type ``` which arises when the input bitcode contains a null pointer. Reviewers: jdoerfert, CodaFi, deadalnix Reviewed By: jdoerfert Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68928
Diffstat (limited to 'llvm/tools/llvm-c-test')
-rw-r--r--llvm/tools/llvm-c-test/echo.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/tools/llvm-c-test/echo.cpp b/llvm/tools/llvm-c-test/echo.cpp
index 4d10a4bbfc0..8abbfb3fb0c 100644
--- a/llvm/tools/llvm-c-test/echo.cpp
+++ b/llvm/tools/llvm-c-test/echo.cpp
@@ -326,6 +326,13 @@ static LLVMValueRef clone_constant_impl(LLVMValueRef Cst, LLVMModuleRef M) {
EltCount, LLVMIsPackedStruct(Ty));
}
+ // Try ConstantPointerNull
+ if (LLVMIsAConstantPointerNull(Cst)) {
+ check_value_kind(Cst, LLVMConstantPointerNullValueKind);
+ LLVMTypeRef Ty = TypeCloner(M).Clone(Cst);
+ return LLVMConstNull(Ty);
+ }
+
// Try undef
if (LLVMIsUndef(Cst)) {
check_value_kind(Cst, LLVMUndefValueValueKind);
OpenPOWER on IntegriCloud