ObjectFileMachO: Silence signed/unsigned comparison warning
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 24 Jul 2014 00:24:12 +0000 (00:24 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 24 Jul 2014 00:24:12 +0000 (00:24 +0000)
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.

Differential Revision: http://reviews.llvm.org/D4634

llvm-svn: 213822

lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp

index 2503567..11b2796 100644 (file)
@@ -5426,8 +5426,7 @@ ObjectFileMachO::SaveCore (const lldb::ProcessSP &process_sp,
                             // Now write the file data for all memory segments in the process
                             for (const auto &segment : segment_load_commands)
                             {
-                                off_t offset = core_file.SeekFromStart(segment.fileoff);
-                                if (offset < 0 || segment.fileoff != static_cast<uint64_t>(offset))
+                                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;