svn commit: r343200 - in vendor/lldb/dist-release_80: include/lldb/Host/openbsd source/Core source/Host/openbsd

Dimitry Andric dim at FreeBSD.org
Sat Jan 19 18:45:19 UTC 2019


Author: dim
Date: Sat Jan 19 18:45:14 2019
New Revision: 343200
URL: https://svnweb.freebsd.org/changeset/base/343200

Log:
  Vendor import of lldb release_80 branch r351543:
  https://llvm.org/svn/llvm-project/lldb/branches/release_80@351543

Modified:
  vendor/lldb/dist-release_80/include/lldb/Host/openbsd/HostInfoOpenBSD.h
  vendor/lldb/dist-release_80/source/Core/Value.cpp
  vendor/lldb/dist-release_80/source/Host/openbsd/HostInfoOpenBSD.cpp

Modified: vendor/lldb/dist-release_80/include/lldb/Host/openbsd/HostInfoOpenBSD.h
==============================================================================
--- vendor/lldb/dist-release_80/include/lldb/Host/openbsd/HostInfoOpenBSD.h	Sat Jan 19 18:45:09 2019	(r343199)
+++ vendor/lldb/dist-release_80/include/lldb/Host/openbsd/HostInfoOpenBSD.h	Sat Jan 19 18:45:14 2019	(r343200)
@@ -12,12 +12,13 @@
 
 #include "lldb/Host/posix/HostInfoPosix.h"
 #include "lldb/Utility/FileSpec.h"
+#include "llvm/Support/VersionTuple.h"
 
 namespace lldb_private {
 
 class HostInfoOpenBSD : public HostInfoPosix {
 public:
-  static bool GetOSVersion(uint32_t &major, uint32_t &minor, uint32_t &update);
+  static llvm::VersionTuple GetOSVersion();
   static bool GetOSBuildString(std::string &s);
   static bool GetOSKernelDescription(std::string &s);
   static FileSpec GetProgramFileSpec();

Modified: vendor/lldb/dist-release_80/source/Core/Value.cpp
==============================================================================
--- vendor/lldb/dist-release_80/source/Core/Value.cpp	Sat Jan 19 18:45:09 2019	(r343199)
+++ vendor/lldb/dist-release_80/source/Core/Value.cpp	Sat Jan 19 18:45:14 2019	(r343200)
@@ -210,31 +210,35 @@ bool Value::ValueOf(ExecutionContext *exe_ctx) {
 }
 
 uint64_t Value::GetValueByteSize(Status *error_ptr, ExecutionContext *exe_ctx) {
+  uint64_t byte_size = 0;
+
   switch (m_context_type) {
   case eContextTypeRegisterInfo: // RegisterInfo *
-    if (GetRegisterInfo()) {
-      if (error_ptr)
-        error_ptr->Clear();
-      return GetRegisterInfo()->byte_size;
-    }
+    if (GetRegisterInfo())
+      byte_size = GetRegisterInfo()->byte_size;
     break;
 
   case eContextTypeInvalid:
   case eContextTypeLLDBType: // Type *
   case eContextTypeVariable: // Variable *
   {
-    auto *scope = exe_ctx ? exe_ctx->GetBestExecutionContextScope() : nullptr;
-    if (llvm::Optional<uint64_t> size = GetCompilerType().GetByteSize(scope)) {
-      if (error_ptr)
-        error_ptr->Clear();
-      return *size;
+    const CompilerType &ast_type = GetCompilerType();
+    if (ast_type.IsValid())
+      if (llvm::Optional<uint64_t> size = ast_type.GetByteSize(
+              exe_ctx ? exe_ctx->GetBestExecutionContextScope() : nullptr))
+        byte_size = *size;
+  } break;
+  }
+
+  if (error_ptr) {
+    if (byte_size == 0) {
+      if (error_ptr->Success())
+        error_ptr->SetErrorString("Unable to determine byte size.");
+    } else {
+      error_ptr->Clear();
     }
-    break;
   }
-  }
-  if (error_ptr && error_ptr->Success())
-    error_ptr->SetErrorString("Unable to determine byte size.");
-  return 0;
+  return byte_size;
 }
 
 const CompilerType &Value::GetCompilerType() {

Modified: vendor/lldb/dist-release_80/source/Host/openbsd/HostInfoOpenBSD.cpp
==============================================================================
--- vendor/lldb/dist-release_80/source/Host/openbsd/HostInfoOpenBSD.cpp	Sat Jan 19 18:45:09 2019	(r343199)
+++ vendor/lldb/dist-release_80/source/Host/openbsd/HostInfoOpenBSD.cpp	Sat Jan 19 18:45:14 2019	(r343200)
@@ -17,16 +17,17 @@
 
 using namespace lldb_private;
 
-bool HostInfoOpenBSD::GetOSVersion(uint32_t &major, uint32_t &minor,
-                                   uint32_t &update) {
+llvm::VersionTuple HostInfoOpenBSD::GetOSVersion() {
   struct utsname un;
 
   ::memset(&un, 0, sizeof(utsname));
   if (uname(&un) < 0)
-    return false;
+    return llvm::VersionTuple();
 
-  int status = sscanf(un.release, "%u.%u", &major, &minor);
-  return status == 2;
+  unsigned major, minor;
+  if (2 == sscanf(un.release, "%u.%u", &major, &minor))
+    return llvm::VersionTuple(major, minor);
+  return llvm::VersionTuple();
 }
 
 bool HostInfoOpenBSD::GetOSBuildString(std::string &s) {


More information about the svn-src-vendor mailing list