Fix gcc pragmas. * src/truetype/ttinterp.c (TT_MulFix14_long_long, TT_DotFix14_long_long): Older gcc versions don't accept diagnostic pragmas within a function body.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
diff --git a/ChangeLog b/ChangeLog
index 594756f..d264471 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2013-08-05 Werner Lemberg <wl@gnu.org>
+ Fix gcc pragmas.
+
+ * src/truetype/ttinterp.c (TT_MulFix14_long_long,
+ TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
+ pragmas within a function body.
+
+2013-08-05 Werner Lemberg <wl@gnu.org>
+
Fix Savannah bug #39700.
* builds/unix/ftconfig.h: Synchronize with
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index 5ed16d0..aefeaa2 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -1494,6 +1494,10 @@
#define TT_MulFix14 TT_MulFix14_long_long
+ /* Temporarily disable the warning that C90 doesn't support `long long'. */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
+
/* This is declared `noinline' because inlining the function results */
/* in slower code. The `pure' attribute indicates that the result */
/* only depends on the parameters. */
@@ -1502,10 +1506,6 @@
TT_MulFix14_long_long( FT_Int32 a,
FT_Int b )
{
- /* Temporarily disable the warning that C90 doesn't support */
- /* `long long'. */
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wlong-long"
long long ret = (long long)a * b;
@@ -1518,9 +1518,9 @@
ret += 0x2000 + tmp;
return (FT_Int32)( ret >> 14 );
+ }
#pragma GCC diagnostic pop
- }
#endif /* __GNUC__ && ( __i386__ || __x86_64__ ) */
@@ -1571,6 +1571,9 @@
#define TT_DotFix14 TT_DotFix14_long_long
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
+
static __attribute__(( pure )) FT_Int32
TT_DotFix14_long_long( FT_Int32 ax,
FT_Int32 ay,
@@ -1579,8 +1582,6 @@
{
/* Temporarily disable the warning that C90 doesn't support */
/* `long long'. */
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wlong-long"
long long temp1 = (long long)ax * bx;
long long temp2 = (long long)ay * by;
@@ -1592,9 +1593,10 @@
return (FT_Int32)( temp1 >> 14 );
-#pragma GCC diagnostic pop
}
+#pragma GCC diagnostic pop
+
#endif /* __GNUC__ && (__arm__ || __i386__ || __x86_64__) */