ref: 69e524d5fe2a43c22764f2ecdb04a84578417924
parent: 9e6de36aee47ae6e84ab3765b3efd11fdd5a82f0
author: Werner Lemberg <[email protected]>
date: Mon Aug 5 19:38:32 EDT 2013
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.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2013-08-05 Werner Lemberg <[email protected]>
+ 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 <[email protected]>
+
Fix Savannah bug #39700.
* builds/unix/ftconfig.h: Synchronize with
--- 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,8 +1593,9 @@
return (FT_Int32)( temp1 >> 14 );
-#pragma GCC diagnostic pop
}
+
+#pragma GCC diagnostic pop
#endif /* __GNUC__ && (__arm__ || __i386__ || __x86_64__) */