Use explicit language extensions & remove extension fields from base.cabal
[ghc-base.git] / System / CPUTime.hsc
index 2dbc896..a25c750 100644 (file)
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP, NondecreasingIndentation, ForeignFunctionInterface #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  System.CPUTime
@@ -31,8 +33,11 @@ import CPUTime ( getCPUTime, cpuTimePrecision )
 #endif
 
 #ifdef __GLASGOW_HASKELL__
-import Foreign
+import Foreign hiding (unsafePerformIO)
 import Foreign.C
+#if !defined(CLK_TCK)
+import System.IO.Unsafe (unsafePerformIO)
+#endif
 
 #include "HsBaseConfig.h"
 
@@ -108,7 +113,7 @@ foreign import ccall unsafe getrusage :: CInt -> Ptr CRUsage -> IO CInt
 #else
 # if defined(HAVE_TIMES)
     allocaBytes (#const sizeof(struct tms)) $ \ p_tms -> do
-    times p_tms
+    _ <- times p_tms
     u_ticks  <- (#peek struct tms,tms_utime) p_tms :: IO CClock
     s_ticks  <- (#peek struct tms,tms_stime) p_tms :: IO CClock
     return (( (realToInteger u_ticks + realToInteger s_ticks) * 1000000000000)