Use right pointer type in DebugIR
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 27 Sep 2013 22:26:25 +0000 (22:26 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 27 Sep 2013 22:26:25 +0000 (22:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191576 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/DebugIR.cpp
test/Transforms/DebugIR/simple-addrspace.ll [new file with mode: 0644]

index 9489bb2556f0b17123b59e1e0778eed7470bfba8..f50a044073fa646109b1eff66d26ca25bfe5a6d4 100644 (file)
@@ -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/test/Transforms/DebugIR/simple-addrspace.ll b/test/Transforms/DebugIR/simple-addrspace.ll
new file mode 100644 (file)
index 0000000..6bea9b2
--- /dev/null
@@ -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
+
+