To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=47866
Issue #:|47866
Summary:|[PATCH] Fix compilation warnings under VC++ 6.0
Component:|tools
Version:|current
Platform:|PC
URL:|
OS/Version:|Windows XP
Status:|UNCONFIRMED
Status whiteboard:|
Keywords:|
Resolution:|
Issue type:|DEFECT
Priority:|P3
Subcomponent:|dmake
Assigned to:|hjs
Reported by:|shay
------- Additional comments from [EMAIL PROTECTED] Thu Apr 21 02:08:31 -0700
2005 -------
When building the cws_src680_dmake43p01 version using MSVC++ 6.0 I get these
compilation warnings:
infer.c
infer.c(419) : warning C4133: '!=' : incompatible types - from 'struct tcell *'
to 'struct lcell *'
sysintf.c
win95\microsft\config.h(83) : warning C4005: 'CONST' : macro redefinition
C:\PROGRA~1\MICROS~2\VC98\include\windef.h(138) : see previous
definition of 'CONST'
sysintf.c(366) : warning C4113: 'void (__cdecl *)()' differs in parameter lists
from 'void (__cdecl *)(int )'
sysintf.c(368) : warning C4113: 'void (__cdecl *)()' differs in parameter lists
from 'void (__cdecl *)(int )'
function.c
function.c(424) : warning C4113: 'int (__cdecl *)()' differs in parameter lists
from 'int (__cdecl *)(const void *,const void *)'
function.c(462) : warning C4113: 'int (__cdecl *)()' differs in parameter lists
from 'int (__cdecl *)(const void *,const void *)'
The infer.c warning is caused by:
mtcp != NIL(CELL)
in which mtcp is a LINKPTR aka LINK* aka lcell*, but NIL(CELL) is a CELL* aka
tcell*. The obvious fix would seem to be to change NIL(CELL) to NIL(LINK).
The win95\microsft\config.h warning is caused by:
/* MSC doesn't seem to care about CONST */
#define CONST
It would appear that MSC *does* care about CONST now (it is defined in
<windef.h>), so a solution is not to define CONST if it is already defined.
The other sysintf.c warnings are caused by the declaration of "fn" (the second
argument passed to signal()) as:
void (*fn)();
The MSDN documentation gives signal()'s signature as:
void ( *signal( int sig, void (__cdecl *func) ( int sig [, int subcode ] ))
) ( int sig );
so "fn" should be declared as:
void (*fn)(int);
This should work on UNIX too (although I can't test it) because the Single UNIX
Specification Version 3 at http://www.unix.org/ also has:
void (*signal(int sig, void (*func)(int)))(int);
for the signal() signature.
Finally, the function.c warnings are caused by two calls to:
qsort( tokens, i, sizeof(char *), _mystrcmp );
in which _mystrcmp() is declared as:
static int _mystrcmp ANSI((const PVOID, const PVOID));
The ANSI() macro seems to be the problem, replacing the (const PVOID, const
PVOID) with just (). Removing the use of the ANSI() macro fixes the warnings
for me, but I confess that I have no idea whether this is correct or not.
A patch containing these changes follows.
---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]