Bug 189376 - Regression test failed on network address related functions
Regression test failed on network address related functions
Status: CLOSED UPSTREAM
Product: Fedora
Classification: Fedora
Component: gcc (Show other bugs)
rawhide
i586 Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-04-19 11:55 EDT by Anton Guda
Modified: 2007-11-30 17:11 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-04-24 11:48:14 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
regression diff file (2.22 KB, text/plain)
2006-04-19 11:55 EDT, Anton Guda
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
GNU Compiler Collection 27285 None None None Never

  None (edit)
Description Anton Guda 2006-04-19 11:55:02 EDT
Description of problem:
While (second) rebuilding on postgresql error
appears at the test stage: some network-mask
related functions returns bad results.
Previous rebuild with same rpm was fine (local build 31 mar 2006).

Version-Release number of selected component (if applicable):
postgresql-8.1.3-2
gcc-4.1.0-7
glibc-2.4-5

How reproducible:
now always


Steps to Reproduce:
1. rpmbuild -bi --target i586 postgresql.spec
  
Actual results:
build failed on test stage.

Expected results:
Build without errors.




Additional info:
Comment 1 Anton Guda 2006-04-19 11:55:02 EDT
Created attachment 127989 [details]
regression diff file
Comment 2 Tom Lane 2006-04-19 12:43:11 EDT
This looks to me like it could be a compiler bug, seeing that the same source
code passes this test fine on many other platforms.  Did you update gcc since
your last successful build?  Does the failure go away if you change the --target
spec?

The code in question is network_network() in src/backend/utils/adt/network.c
if you want to take a closer look.  I'm betting that gcc is misoptimizing the
shift-and-mask operations.
Comment 3 Anton Guda 2006-04-19 13:28:14 EDT
Yes, gcc was updated every time as it was updated in ``development'' 
Fedora branch. Tested arch: i566, i686.
I will try to rewrite some code to find misoptimization.
And will update gcc once again.
Comment 4 Anton Guda 2006-04-22 07:18:05 EDT
It's really a gcc bug.
The miscompilated code in src/backend/utils/adt/network.c: network_network:
  
  byte = 0;
  while (bits)
  {
   ...
  }
If bits == 25, the loop running 3 times, not 4,

If loop header rewrited as 

  while(bits>0)

all tests passed.

gcc-4.1.0-9


Comment 5 Tom Lane 2006-04-22 14:49:14 EDT
Reclassifying as gcc bug.
Comment 6 Jakub Jelinek 2006-04-24 11:48:14 EDT
Tracking thsi upstream.

Note You need to log in before you can comment on or make changes to this bug.