d905ca
--- digikam-5.7.0/core/libs/rawengine/libraw/internal/dcraw_common.cpp.orig	2017-09-05 09:51:22.000000000 +0100
d905ca
+++ digikam-5.7.0/core/libs/rawengine/libraw/internal/dcraw_common.cpp	2018-01-10 02:46:30.990330876 +0000
d905ca
@@ -5773,7 +5773,7 @@ static float my_roundf(float x) {
d905ca
 static float _CanonConvertAperture(ushort in)
d905ca
 {
d905ca
   if ((in == (ushort)0xffe0) || (in == (ushort)0x7fff)) return 0.0f;
d905ca
-  return powf64(2.0, in/64.0);
d905ca
+  return powf64(2.0f, float(in/64.0));
d905ca
 }
d905ca
 
d905ca
 static float _CanonConvertEV (short in)
d905ca
@@ -6726,7 +6726,7 @@ void CLASS PentaxLensInfo (unsigned id,
3ea150
 		if (table_buf[iLensData+9] &&
3ea150
 			(fabs(imgdata.lens.makernotes.CurFocal) < 0.1f))
3ea150
 		  imgdata.lens.makernotes.CurFocal =
3ea150
-			10*(table_buf[iLensData+9]>>2) * powf64(4, (table_buf[iLensData+9] & 0x03)-2);
3ea150
+			10*(table_buf[iLensData+9]>>2) * powf64(4.0f, (float)((table_buf[iLensData+9] & 0x03)-2));
3ea150
 		if (table_buf[iLensData+10] & 0xf0)
3ea150
 		  imgdata.lens.makernotes.MaxAp4CurFocal =
3ea150
 			powf64(2.0f, (float)((table_buf[iLensData+10] & 0xf0) >>4)/4.0f);
d905ca
@@ -7648,7 +7648,7 @@ void CLASS parse_makernote_0xc634(int ba
d905ca
           {
d905ca
             unsigned char cc;
d905ca
             fread(&cc, 1, 1, ifp);
d905ca
-            iso_speed = (int)(100.0 * powf64(2.0, (double)(cc) / 12.0 - 5.0));
d905ca
+            iso_speed = (int)(100.0 * powf64(2.0f, (float)((double)(cc) / 12.0 - 5.0)));
d905ca
             break;
d905ca
           }
d905ca
       }
d905ca
@@ -9151,15 +9151,15 @@ void CLASS parse_makernote (int base, in
d905ca
       }
d905ca
     if (tag == 4 && len > 26 && len < 35) {
d905ca
       if ((i=(get4(),get2())) != 0x7fff && (!iso_speed || iso_speed == 65535))
d905ca
-	iso_speed = 50 * powf64(2.0, i/32.0 - 4);
d905ca
+	iso_speed = 50 * powf64(2.0f, (float)(i/32.0 - 4));
d905ca
 #ifdef LIBRAW_LIBRARY_BUILD
d905ca
       get4();
d905ca
 #else
d905ca
       if ((i=(get2(),get2())) != 0x7fff && !aperture)
d905ca
-	aperture = powf64(2.0, i/64.0);
d905ca
+	aperture = powf64(2.0f, (float)(i/64.0));
d905ca
 #endif
d905ca
       if ((i=get2()) != 0xffff && !shutter)
d905ca
-	shutter = powf64(2.0, (short) i/-32.0);
d905ca
+	shutter = powf64(2.0f, (short) i/-32.0);
d905ca
       wbi = (get2(),get2());
d905ca
       shot_order = (get2(),get2());
d905ca
     }
d905ca
@@ -9768,11 +9768,11 @@ void CLASS parse_exif (int base)
d905ca
       case 36868:  get_timestamp(0);			break;
d905ca
       case 37377:  if ((expo = -getreal(type)) < 128 && shutter == 0.)
d905ca
 		     tiff_ifd[tiff_nifds-1].t_shutter =
d905ca
-			shutter = powf64(2.0, expo);
d905ca
+			shutter = powf64(2.0f, (float)expo);
d905ca
 		break;
d905ca
       case 37378:                                       // 0x9202 ApertureValue
d905ca
         if ((fabs(ape = getreal(type))<256.0) && (!aperture))
d905ca
-          aperture = powf64(2.0, ape/2);
d905ca
+          aperture = powf64(2.0f, (float)ape/2);
d905ca
         break;
d905ca
       case 37385:  flash_used = getreal(type);          break;
d905ca
       case 37386:  focal_len = getreal(type);		break;
d905ca
@@ -11716,9 +11716,9 @@ void CLASS parse_ciff (int offset, int l
d905ca
       aperture  = _CanonConvertAperture((get2(),get2()));
d905ca
       imgdata.lens.makernotes.CurAp = aperture;
d905ca
 #else
d905ca
-      aperture  = powf64(2.0, (get2(),(short)get2())/64.0);
d905ca
+      aperture  = powf64(2.0f, (get2(),(short)get2())/64.0);
d905ca
 #endif
d905ca
-      shutter   = powf64(2.0,-((short)get2())/32.0);
d905ca
+      shutter   = powf64(2.0f,(float)(-((short)get2())/32.0));
d905ca
       wbi = (get2(),get2());
d905ca
       if (wbi > 17) wbi = 0;
d905ca
       fseek (ifp, 32, SEEK_CUR);