PR# 13870 Missing prototypes in runtime

Problem Report Summary
Submitter: prestoat2000
Category: Runtime
Priority: Low
Date: 2008/01/09
Class: Bug
Severity: Non-critical
Number: 13870
Release: 6.2.71821
Confidential: No
Status: Closed
Responsible:
Environment: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.8.1.9) Gecko/20071111 Firefox/2.0.0.9 Solaris 10 on x86
Synopsis: Missing prototypes in runtime

Description
There are some missing prototypes in the runtime code.  A declaration

   extern void foo();

needs to be

   extern void foo(void);

Otherwise, it is not considered a prototype (for compatability with K&R style
code) - verified by experiment.  This could cause undetected errors.

Although it is just a style issue, I have also included cases where the
definition of a function has an empty argument list instead of "(void)".
It is easier to recognize function definitions at a glance if the argument
list is never completely empty (i.e., if "()" always signifies a function
call).

See attached file for a full list of function declarations and definitions
with no arguments that do not include "void" in the argument list.
To Reproduce

										
Problem Report Interactions
From:alexk_es    Date:2009/09/01    Status: Closed    Download   
Indeed, this one was missing. Now it is fixed in rev#80575 of EiffelStudio 6.5 intermediate release. Thank you for your report.

From:prestoat2000    Date:2009/08/31    Status: Analyzed    Download   
I seem to have missed one place in my original list where "void" is not included in prototype:

In malloc.c:

   rt_shared EIF_REFERENCE get_to_from_core();             /* Get a free eiffel chunk from kernel */

From:alexk_es    Date:2009/08/19    Status: Closed    Download   
Fixed in rev#80336 of EiffelStudio 6.5 intermediate release.

From:prestoat2000    Date:2008/01/09    Download   
Attachments for problem report #13870

Attachment: missing_prototypes.txt     Size:5615