Bug 136688

Summary: bb-1.3-356: undefined C code
Product: [openSUSE] SUSE LINUX 10.0 Reporter: David Binderman <dcb314>
Component: BasesystemAssignee: Andreas Schwab <schwab>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Minor    
Priority: P5 - None    
Version: Final   
Target Milestone: SUSE Linux 10.1   
Hardware: All   
OS: SuSE Linux 10.0   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description David Binderman 2005-12-02 15:06:30 UTC
I just tried to compile package bb-1.3-356 with a prerelease of the
GNU C compiler version 4.1. It said

1.

zoom.c:324: warning: operation on `ftmp' may be undefined

The source code is

                   myprice += PRICE(pos[p], y);        /*store data */

but

#define PRICE(i,i1) ((((ftmp=((i)-(i1)))*ftmp)*(rangedelta)))

I agree with the compiler - this code seems to be undefined. 

AFAIK, there are no guarantees in C that the left side of a multiply operation
happens before the right side.

Suggest code rework.

2.

zoom.c:354: warning: operation on `ftmp' may be undefined
zoom.c:388: warning: operation on `ftmp' may be undefined
zoom.c:418: warning: operation on `ftmp' may be undefined

Duplicates.

BTW, the email address of the author [ kupsaf@feld.cvut.cz ]
seems to be broken.
Comment 1 Andreas Schwab 2005-12-02 19:39:27 UTC
Fixed.