zturner added inline comments.

================
Comment at: source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp:1462-1467
@@ -1461,8 +1461,8 @@
             const uint32_t segment_permissions =
                 ((load_cmd.initprot & VM_PROT_READ) ? ePermissionsReadable
-                                                    : 0) |
+                                                    : 0u) |
                 ((load_cmd.initprot & VM_PROT_WRITE) ? ePermissionsWritable
-                                                     : 0) |
+                                                     : 0u) |
                 ((load_cmd.initprot & VM_PROT_EXECUTE) ? ePermissionsExecutable
-                                                       : 0);
+                                                       : 0u);
 
----------------
I find this code pretty ugly because of how the line breaks.  Can you change 
this to:

```
uint32_t segment_permissions = 0;
if (load_cmd.initprot & VM_PROT_READ)
  segment_permissions |= ePermissionsReadable;
if (load_cmd.initprot & VM_PROT_WRITE)
  segment_permissions |= ePermissionsWritable;
if (load_cmd.initprot & VM_PROT_EXECUTE)
  segment_permissions |= ePermissionsExecutable;
```

or, alternatively:

```
// global scope
static uint32_t translateSegmentPermissions(uint32_t initprot) {
  return ((initprot & VM_PROT_READ) ? ePermissionsReadable : 0u) |
              (initprot & VM_PROT_WRITE) ? ePermissionsWritable : 0u) |
              (initprot & VM_PROT_EXECUTE) ? ePermissionsExecutable : 0u);
}

// at this location
const uint32_t segment_permissions = 
translateSegmentPermissions(load_cmd.initprot);
```

================
Comment at: source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp:521
@@ -520,3 +520,3 @@
       const uint64_t uval = PyLong_AsUnsignedLongLong(m_py_obj);
-      result = *((int64_t *)&uval);
+      result = *((const int64_t *)&uval);
     }
----------------
Am I missing something?  Why isn't this just `result = 
static_cast<int64_t>(uval);`

================
Comment at: source/Target/StackFrame.cpp:1427
@@ -1423,3 +1426,3 @@
 
-  if (offset >= pointee->GetByteSize()) {
+  if (offset > 0 && uint64_t(offset) >= pointee->GetByteSize()) {
     int64_t index = offset / pointee->GetByteSize();
----------------
Probably only of theoretical interest since I don't think 
`pointee->GetByteSize()` can ever return 0, but maybe this should be `offset >= 
0`

================
Comment at: source/Target/StackFrame.cpp:1593
@@ -1589,3 +1592,3 @@
 
     Instruction::Operand *register_operand = nullptr;
     Instruction::Operand *origin_operand = nullptr;
----------------
How about just delete this variable instead?


https://reviews.llvm.org/D24331



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to