[Lldb-commits] [PATCH] ObjectFileMachO: Silence signed/unsigned comparison warning

David Majnemer david.majnemer at gmail.com
Tue Jul 22 16:17:19 PDT 2014


Hi tfiala, zturner,

File::SeekFromStart returns an off_t representing the position of the
file after seeking.  This return value is always going to be one of two
values: the input or -1 in the case of failure.

ObjectFileMachO compares an expression of type off_t from the return of
File::SeekFromStart(segment.fileoff) and compares it for equality with
segment.fileoff.

The type of segment_command_64::fileoff is unsigned while off_t is
signed, comparing them emits a diagnostic under GCC.

Instead, we can just compare SeekFromSTart with -1 to see if we
successfully seeked.

http://reviews.llvm.org/D4634

Files:
  source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp

Index: source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
===================================================================
--- source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+++ source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
@@ -5424,7 +5424,7 @@
                             // Now write the file data for all memory segments in the process
                             for (const auto &segment : segment_load_commands)
                             {
-                                if (segment.fileoff != core_file.SeekFromStart(segment.fileoff))
+                                if (core_file.SeekFromStart(segment.fileoff) == -1)
                                 {
                                     error.SetErrorStringWithFormat("unable to seek to offset 0x%" PRIx64 " in '%s'", segment.fileoff, core_file_path.c_str());
                                     break;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4634.11796.patch
Type: text/x-patch
Size: 891 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20140722/daacf71a/attachment.bin>


More information about the lldb-commits mailing list