freetype2/builds/unix
Werner Lemberg 92aa527a1c * builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk
(CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove
-fno-strict-aliasing.


Say you have `(Foo*)x' and want to assign, pass, or return it as
`(Bar*)'.  If you simply say `x' or `(Bar*)x', then the C compiler
would warn you that type casting incompatible pointer types breaks
strict-aliasing.  The solution is to cast to `(void*)' instead which
is the generic pointer type, so the compiler knows that it should
make no strict-aliasing assumption on `x'.  But the problem with
`(void*)x' is that seems like in C++, unlike C, `void*' is not a
generic pointer type and assigning `void*' to `Bar*' without a cast
causes an error.  The solution is to cast to `Bar*' too, with
`(Bar*)(void*)x' as the result -- this is what the patch does.

* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP),
include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove
cast on lvalue, use a temporary pointer instead.
Cast temporarily to (void*) to not break strict aliasing.

* include/freetype/internal/ftmemory.h (FT_MEM_ALLOC,
FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE),
src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*)
to not break strict aliasing.

* src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information.

* builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing.

* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c --
it is currently loaded from ttsbit.c.


Other formatting.
2005-05-23 21:33:02 +00:00
..
.cvsignore Updated. 2003-10-20 08:30:23 +00:00
configure.ac * builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk 2005-05-23 21:33:02 +00:00
detect.mk * configure: Accept makepp also. 2004-04-13 08:35:05 +00:00
freetype-config.in * builds/unix/freetype-config.in: Add new flag `--ftversion' to 2005-02-10 08:18:27 +00:00
freetype2.in * include/freetype/fttrigon.h (FT_Vector_Normalize): Removed. 2003-06-01 21:30:04 +00:00
freetype2.m4 * Version 2.1.7 released. 2003-11-09 08:37:14 +00:00
ft-munmap.m4 * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of 2004-04-02 07:13:53 +00:00
ft2unix.h * Version 2.1.7 released. 2003-11-09 08:37:14 +00:00
ftconfig.in * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define 2004-04-16 09:56:30 +00:00
ftsystem.c * builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for 2004-12-28 23:08:51 +00:00
install-sh * builds/unix/ltmain.sh: Regenerated with `libtoolize --force 2005-02-20 08:22:30 +00:00
install.mk * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h. 2004-12-06 08:42:41 +00:00
mkinstalldirs * builds/unix/ltmain.sh: Regenerated with `libtoolize --force 2005-02-20 08:22:30 +00:00
unix-cc.in * Version 2.1.7 released. 2003-11-09 08:37:14 +00:00
unix-def.in * configure: Accept makepp also. 2004-04-13 08:35:05 +00:00
unix-dev.mk Completely revised FreeType's make management. 2003-06-09 04:46:30 +00:00
unix-lcc.mk Completely revised FreeType's make management. 2003-06-09 04:46:30 +00:00
unix.mk * configure: Accept makepp also. 2004-04-13 08:35:05 +00:00
unixddef.mk Completely revised FreeType's make management. 2003-06-09 04:46:30 +00:00