------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugs.exim.org/show_bug.cgi?id=953 Summary: Visual C++ warning in pcre_globals.c Product: PCRE Version: 8.01 Platform: x86 OS/Version: Windows Status: NEW Severity: bug Priority: medium Component: Code AssignedTo: [email protected] ReportedBy: [email protected] CC: [email protected] pcre_globals.c can generate warnings when built with Visual Studio: 1>Compiling... 1>pcre_globals.c 1>..\pcre_7.8\pcre_globals.c(67) : warning C4232: nonstandard extension used : 1> 'pcre_malloc' : address of dllimport 'malloc' is not static, identity not guaranteed 1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdlib.h(601) : see declaration of 'malloc' 1>..\pcre_7.8\pcre_globals.c(68) : warning C4232: nonstandard extension used : 'pcre_free' : 1> address of dllimport 'free' is not static, identity not guaranteed 1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdlib.h(600) : see declaration of 'free' 1>..\pcre_7.8\pcre_globals.c(69) : warning C4232: nonstandard extension used : 'pcre_stack_malloc' : 1> address of dllimport 'malloc' is not static, identity not guaranteed 1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdlib.h(601) : see declaration of 'malloc' 1>..\pcre_7.8\pcre_globals.c(70) : warning C4232: nonstandard extension used : 'pcre_stack_free' : 1> address of dllimport 'free' is not static, identity not guaranteed 1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdlib.h(600) : see declaration of 'free' These relate to http://msdn.microsoft.com/en-us/library/da6zd0a4.aspx and seem to be due to taking the address of a symbol contained within an external DLL. A fix is to initialise the globals to the address of a local function instead: static void *glue_malloc(size_t theSize) { return(malloc(theSize)); } static void glue_free(void *thePtr) { free(thePtr); } PCRE_EXP_DATA_DEFN void *(*pcre_malloc)(size_t) = glue_malloc; PCRE_EXP_DATA_DEFN void (*pcre_free)(void *) = glue_free; PCRE_EXP_DATA_DEFN void *(*pcre_stack_malloc)(size_t) = glue_malloc; PCRE_EXP_DATA_DEFN void (*pcre_stack_free)(void *) = glue_free; PCRE_EXP_DATA_DEFN int (*pcre_callout)(pcre_callout_block *) = NULL; -- Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email -- ## List details at http://lists.exim.org/mailman/listinfo/pcre-dev
