diff options
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/DebugIR.cpp | 2 | ||||
-rw-r--r-- | llvm/test/Transforms/DebugIR/simple-addrspace.ll | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/DebugIR.cpp b/llvm/lib/Transforms/Instrumentation/DebugIR.cpp index 9489bb2556f..f50a044073f 100644 --- a/llvm/lib/Transforms/Instrumentation/DebugIR.cpp +++ b/llvm/lib/Transforms/Instrumentation/DebugIR.cpp @@ -402,7 +402,7 @@ private: Type *PointeeTy = T->getPointerElementType(); if (!(N = getType(PointeeTy))) N = Builder.createPointerType( - getOrCreateType(PointeeTy), Layout.getPointerSizeInBits(), + getOrCreateType(PointeeTy), Layout.getPointerTypeSizeInBits(T), Layout.getPrefTypeAlignment(T), getTypeName(T)); } else if (T->isArrayTy()) { SmallVector<Value *, 1> Subrange; diff --git a/llvm/test/Transforms/DebugIR/simple-addrspace.ll b/llvm/test/Transforms/DebugIR/simple-addrspace.ll new file mode 100644 index 00000000000..6bea9b269f5 --- /dev/null +++ b/llvm/test/Transforms/DebugIR/simple-addrspace.ll @@ -0,0 +1,13 @@ +; RUN: opt -debug-ir -S %s -o - | FileCheck %s + +target datalayout = "e-p:64:64:64-p1:16:16:16" + +define void @foo(i32 addrspace(1)*) nounwind { + ret void +} + +; Make sure the pointer size is 16 + +; CHECK: metadata !"i32 addrspace(1)*", i32 0, i64 16, i64 2, i64 0, i32 0 + + |