On Sun, 11 Jul 2010, Werner LEMBERG wrote: > > Folks, > > > it seems that g++ 4.5.0 is ridiculously picky w.r.t. type-punning: > While previous g++ versions have been made silent successfully, the > latest version reports zillions of warnings. > > The code hasn't changed basically; all warnings stem from macros like > `FT_NEW' or `FT_NEW_ARRAY', and IMHO there are definitely *no* > type-punning issues since it is always related to type-converting > malloc's `void *' return value, and this should be harmless AFAIK. > > Anybody on the list who has more insight, probably be able to suggest > a fix which we could apply to the git repository? > > To see the warnings, say > > sh autogen.sh > ./configure CC=g++ > make > > within a clean copy of the git repository.
I've asked Richard Henderson about this, and his conclusion is: a. the code is broken b. following fixes it diff --git a/include/freetype/internal/ftmemory.h b/include/freetype/internal/ftmemory.h index 2010ca9..e053290 100644 --- a/include/freetype/internal/ftmemory.h +++ b/include/freetype/internal/ftmemory.h @@ -64,7 +64,11 @@ FT_BEGIN_HEADER */ #ifdef __cplusplus -#define FT_ASSIGNP( p, val ) *((void**)&(p)) = (val) +extern "C++" template<typename T> inline T * my_typeof( T *, void *v ) +{ + return static_cast<T*>(v); +} +#define FT_ASSIGNP( p, val ) p = my_typeof( p, val ) #else #define FT_ASSIGNP( p, val ) (p) = (val) #endif Following helps full with another issue. diff --git a/src/tools/apinames.c b/src/tools/apinames.c index 7f191e1..f96bcf6 100644 --- a/src/tools/apinames.c +++ b/src/tools/apinames.c @@ -152,7 +152,7 @@ names_dump( FILE* out, { /* we must omit the .dll suffix from the library name */ char temp[512]; - char* dot; + const char* dot; if ( dll_name == NULL ) { FWIW even plain gcc (4.5 or not) will emit tons of warnings when invoked with -fstrict-aliasing -Wstrict-aliasing=[2|3]. -- mailto:av1...@comtv.ru _______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/freetype-devel