[commit: ghc] master: rts: Fix C compiler warnings on Windows (0efbf18)

git at git.haskell.org git at git.haskell.org
Wed May 11 12:09:56 UTC 2016


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/0efbf18b80c261708da9ef61bcd420fa94cfed42/ghc

>---------------------------------------------------------------

commit 0efbf18b80c261708da9ef61bcd420fa94cfed42
Author: Erik de Castro Lopo <erikd at mega-nerd.com>
Date:   Wed May 11 16:17:08 2016 +1000

    rts: Fix C compiler warnings on Windows
    
    Summary:
    Specifcally we want the MinGW compiler to use ISO print format
    specfifiers.
    
    Test Plan: Validate on Linux, OS X and Windows
    
    Reviewers: Phyx, austin, bgamari, simonmar
    
    Reviewed By: bgamari, simonmar
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D2192


>---------------------------------------------------------------

0efbf18b80c261708da9ef61bcd420fa94cfed42
 includes/stg/Types.h |  5 +++++
 rts/Linker.c         |  9 ++++++---
 rts/Trace.c          | 13 +++++++------
 3 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/includes/stg/Types.h b/includes/stg/Types.h
index 1a61c8b..0ad3c5c 100644
--- a/includes/stg/Types.h
+++ b/includes/stg/Types.h
@@ -21,6 +21,11 @@
 #ifndef STGTYPES_H
 #define STGTYPES_H
 
+#if defined(mingw32_HOST_OS)
+/* Inform mingw we want the ISO rather than Windows printf format specifiers. */
+#define __USE_MINGW_ANSI_STDIO 1
+#endif
+
 /* ISO C 99 says:
  * "C++ implementations should define these macros only when
  * __STDC_LIMIT_MACROS is defined before <stdint.h> is included."
diff --git a/rts/Linker.c b/rts/Linker.c
index 981df25..09d4f6a 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -3799,9 +3799,12 @@ ocVerifyImage_PEi386 ( ObjectCode* oc )
    IF_DEBUG(linker, i=1);
    if (i == 0) return 1;
 
-   debugBelch( "sectab offset = %" FMT_Int "\n", ((UChar*)sectab) - ((UChar*)hdr) );
-   debugBelch( "symtab offset = %" FMT_Int "\n", ((UChar*)symtab) - ((UChar*)hdr) );
-   debugBelch( "strtab offset = %" FMT_Int "\n", ((UChar*)strtab) - ((UChar*)hdr) );
+   debugBelch("sectab offset = %" FMT_SizeT "\n",
+              ((UChar*)sectab) - ((UChar*)hdr) );
+   debugBelch("symtab offset = %" FMT_SizeT "\n",
+              ((UChar*)symtab) - ((UChar*)hdr) );
+   debugBelch("strtab offset = %" FMT_SizeT "\n",
+              ((UChar*)strtab) - ((UChar*)hdr) );
 
    debugBelch("\n" );
    debugBelch( "Machine:           0x%x\n", (UInt32)(hdr->Machine) );
diff --git a/rts/Trace.c b/rts/Trace.c
index cf47e16..8480f10 100644
--- a/rts/Trace.c
+++ b/rts/Trace.c
@@ -424,18 +424,19 @@ void traceCapsetEvent (EventTypeNum tag,
         tracePreface();
         switch (tag) {
         case EVENT_CAPSET_CREATE:   // (capset, capset_type)
-            debugBelch("created capset %" FMT_Word " of type %d\n", (W_)capset, (int)info);
+            debugBelch("created capset %" FMT_Word32 " of type %d\n", capset,
+                       (int)info);
             break;
         case EVENT_CAPSET_DELETE:   // (capset)
-            debugBelch("deleted capset %" FMT_Word "\n", (W_)capset);
+            debugBelch("deleted capset %" FMT_Word32 "\n", capset);
             break;
         case EVENT_CAPSET_ASSIGN_CAP:  // (capset, capno)
-            debugBelch("assigned cap %" FMT_Word " to capset %" FMT_Word "\n",
-                       (W_)info, (W_)capset);
+            debugBelch("assigned cap %" FMT_Word " to capset %" FMT_Word32 "\n",
+                       info, capset);
             break;
         case EVENT_CAPSET_REMOVE_CAP:  // (capset, capno)
-            debugBelch("removed cap %" FMT_Word " from capset %" FMT_Word "\n",
-                       (W_)info, (W_)capset);
+            debugBelch("removed cap %" FMT_Word " from capset %" FMT_Word32
+                       "\n", info, capset);
             break;
         }
         RELEASE_LOCK(&trace_utx);



More information about the ghc-commits mailing list