gollvm: struct type debug info fixes

The struct member size/align/offset information being emitted into the
debug meta-data entries for struct types was incorrect -- the LLVM
interfaces expected sizes in bits and the bridge code was providing
the sizes in bytes.

Change-Id: Ic57b595a0d072ca1c398fcfaf3e1a222acfebee2
Reviewed-on: https://go-review.googlesource.com/46420
Reviewed-by: Cherry Zhang <cherryyz@google.com>
diff --git a/llvm-gofrontend/go-llvm-typemanager.cpp b/llvm-gofrontend/go-llvm-typemanager.cpp
index 8abbe5b..3d70607 100644
--- a/llvm-gofrontend/go-llvm-typemanager.cpp
+++ b/llvm-gofrontend/go-llvm-typemanager.cpp
@@ -1665,9 +1665,9 @@
   for (unsigned fidx = 0; fidx < bst->fields().size(); ++fidx) {
     const Backend::Btyped_identifier &field = fields[fidx];
     llvm::DIType *fieldType = buildDIType(field.btype, helper);
-    uint64_t memberBits = typeSize(field.btype);
-    uint32_t memberAlign = typeFieldAlignment(field.btype);
-    uint64_t memberOffset = typeFieldOffset(bst, fidx);
+    uint64_t memberBits = typeSize(field.btype) * 8;
+    uint32_t memberAlign = typeFieldAlignment(field.btype) * 8;
+    uint64_t memberOffset = typeFieldOffset(bst, fidx) * 8;
     unsigned lineNumber = helper.linemap()->location_line(field.location);
     llvm::DIDerivedType *ft =
         dibuilder.createMemberType(scope, field.name, file, lineNumber,