To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=48392
                  Issue #:|48392
                  Summary:|warning: control reaches end of non-void function
                Component:|api
                  Version:|680m92
                 Platform:|PC
                      URL:|
               OS/Version:|Linux
                   Status:|NEW
        Status whiteboard:|
                 Keywords:|
               Resolution:|
               Issue type:|PATCH
                 Priority:|P3
             Subcomponent:|code
              Assigned to:|sw
              Reported by:|pmladek





------- Additional comments from [EMAIL PROTECTED] Thu Apr 28 11:03:36 -0700 
2005 -------
The warning: control reaches end of non-void function, could point out a real
bug. So, we want to fix all packages to be built without this warnig.

I have found the following warnings when compiling the module bean with 
gcc-4.0-pre:

Making: ../../unxlngi6.pro/slo/com_sun_star_comp_beans_LocalOfficeWindow.obj
com_sun_star_comp_beans_LocalOfficeWindow.c: In function
'Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow':
com_sun_star_comp_beans_LocalOfficeWindow.c:126: warning: 'return' with no
value, in function returning non-void
com_sun_star_comp_beans_LocalOfficeWindow.c:134: warning: 'return' with no
value, in function returning non-void
com_sun_star_comp_beans_LocalOfficeWindow.c:153: warning: control reaches end of
non-void function

There is the return at the end of the function
Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow. The problem are
the lines 126, 134. There is an assert which is redefined the following way at
the beginning of the source file:

#define assert(X) if (!X) { (*env)->ThrowNew(env, (*env)->FindClass(env,
"java/lang/RuntimeException"), "assertion failed"); return;}

assert usually ends with abort but this version of assert ends with plain return
and is used in a function that requires a value to be returned.

Well, I am not sure what the following command does:
(*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/RuntimeException"),
"assertion failed");

Maybe, the command:
return;
is never accessed because the application is aborted by the RuntimeException.
Would it be possible to return a fake value (for example, 0L) to make the
compiler happy then?

If the RuntimeException does not abort the application, is the plain return
really wanted? Should not be exit() or abort() used insted of return?

Last thing. I think that it would be more save to add one more parentheses to
the assert definition:
(!(X)) should be used instead of (!X) to make sure that the result of the entire
expression is negated.

I'll attach a patch that improves the the test in the assert definition and
retunrns the value 0L instead of void.

---------------------------------------------------------------------
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]

Reply via email to