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.
This commit is contained in:
Werner Lemberg 2013-08-05 23:38:32 +02:00
parent 9e6de36aee
commit 69e524d5fe
2 changed files with 18 additions and 8 deletions

View File

@ -1,3 +1,11 @@
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.

View File

@ -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__) */